Pobierz wiele plików z serwera ftp za pomocą skryptu bash

0

Mam 2 lub 3 serwery FTP, na których nasz hoster każdego dnia tworzy kopie zapasowe bazy danych. Ponieważ zachowuje tylko jeden, miałem napisać skrypt basha do codziennego pobierania kopii zapasowych bazy danych, więc mamy więcej niż jednodniową kopię zapasową.

Próbowałem go uruchomić za pomocą polecenia ftp, ale ponieważ wydaje się, że nie mogę pobrać kompletnego katalogu, pomyślałem, że mogę to zrobić za pomocą pętli for, ale to nie zadziała z poleceniem ftp i zawsze otrzymuję nieoczekiwany koniec błąd pliku.

Powiedziałbym, że można połączyć się tylko przez ftp na serwerze. Brak dostępu SSH lub coś innego!

W tej chwili mam to:

echo "Download all the database backups from honds ftp-servers"

SERVERS="ftp.srv1.de ftp.srv2.de"

#for SERVER in $SERVERS; do
    ftp -in ftp://user:[email protected] << EOF
    binary
    get Datenbankbackup
EOF

źródło
Byłby to dobry pomysł, ale nie mam dostępu przez ssh do serwera ftp. Mogę się łączyć tylko za pomocą komendy ftp lub dowolnego innego klienta ftp. I za pomocą polecenia ftp nie mogę tarować plików.
Tak przepraszam, zapominam o tym. Już to edytowałem.
Próbujesz rozwiązać niewłaściwy problem. Zamiast próbować uzyskać najbardziej podstawowego klienta FTP do wykonywania swoich rzeczy, użyj odpowiedniego klienta .
Daniel B

Odpowiedzi:

1

Możesz wejść do katalogu, a następnie użyć mget polecenie, aby pobrać wszystkie pliki w tym katalogu:

ftp -in ftp://user:[email protected] << EOF
    binary
    cd Datenbankbackup
    mget *
EOF
suspectus
źródło
Cóż, to było całkiem oczywiste, dlaczego nie pomyślałem o tym ... dzięki, robi to, co powinno