Po eksperymentach z lftp
zamieszczam rozwiązanie za pomocą skryptu bash. Tak więc zawartość pliku skryptu bash będzie
#!/bin/bash
USER='username'
PASS='password'
HOST='ftp.mydomain.com'
LOCAL_BACKUP_DIR='/backups'
REMOTE_DIR='/backupfiles'
lftp -u $USER,$PASS $HOST <<EOF
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ssl:verify-certificate no
mirror -R -e "$LOCAL_BACKUP_DIR" "$REMOTE_DIR"
quit
EOF
Gdzie zmieniając pierwszą część z odpowiednimi parametrami host ftp, skrypt weźmie lustro wszystkich plików w katalogu lokalnego do zdalnego jeden.
Ponieważ zdalnym hostem jest serwer FTP w systemie Windows IIS z skonfigurowanym certyfikatem samopodpisanym, muszę zauważyć, że w skrypcie jest potrzebne polecenie set ssl:verify-certificate no
. Również użytkownik IIS/FTP musi zostać wprowadzony w postaci HOST | USER, np. ftp.mydomain.com | nazwa użytkownika, z jakiegoś powodu, jeśli jest to ustawione w LFT parametr USER uwierzytelnianie nie powiedzie się. Musisz ommit nazwę HOST i po prostu ustawić nazwę użytkownika tylko ... i w ten sposób łączy się pomyślnie.