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:pw@ftp.srv1.de << EOF
    binary
    get Datenbankbackup
EOF
bash  backup  ftp 

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:pw@ftp.srv1.de << EOF
    binary
    cd Datenbankbackup
    mget *
EOF

Cóż, to było całkiem oczywiste, dlaczego nie pomyślałem o tym ... dzięki, robi to, co powinno
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.