Wyślij plik na serwer FTP za pomocą jednego polecenia

Widzieliśmy już, jak połączyć się z serwerem FTP i pracować z nim (lub jego zawartością) przez terminal, czyli bez korzystania z aplikacji graficznych.

Tym razem daję ci plus lub ekstra ... pozwól mi wyjaśnić.

Kilka lat temu je zostawiłem skrypt bash używany do tworzenia kopii zapasowych (zapisuje) dane z serwera. Skrypt skopiował serię folderów (takich jak / etc /), wyeksportował bazy danych itp. I skompresował go hasłem do pliku .RAR lub .7z (obecnie używam 7z), jedyną rzeczą, której brakowało w skrypcie, było możliwość przesłania tego skompresowanego pliku na jakiś serwer FTP, w ten sposób zapis z serwera zostałby skopiowany do innej lokalizacji.

Obecnie wziąłem się za skryptem, aby nieco go zoptymalizować, ulepszyć i oczywiście potrzeba tego ostatniego, o którym wspomniałem, wyszła na jaw, przesyłając skompresowane archiwum na zewnętrzny FTP.

Jak przesłać na FTP jednym poleceniem?

Potrzebowałem tylko jednego polecenia, aby połączyć się z FTP z nazwą użytkownika i hasłem, i cóż; przesłać plik do określonego folderu.

Aplikacje terminalowe, które pozwalają mi łączyć się z FTP, wprowadzać użytkownika i hasło oraz przesyłać pliki. Jest ich wiele, ale… które pozwalają mi to wszystko zrobić w jednej linii, ze wszystkimi już określonymi parametrami…. cześć pytanie.

Po przejrzeniu 4 lub 5… pomyślałem, huh !! ... ale istnieje curl

Prześlij na FTP z curl

Z curl mogę robić nieskończoną liczbę rzeczy, może mogę robić, co chcę ... i to wszystko!

Za pomocą parametru -u mogę określić użytkownika i hasło, również za pomocą parametru -T mogę powiedzieć mu, aby załadował plik, a na koniec powiedzieć mu, do którego FTP i do którego folderu chcę go przesłać, na koniec po prostu podaj pełną ścieżkę, mniej więcej w ten sposób:

curl -u usuario:password -T archivo-backup.7z ftp://192.168.128.2/SERVER_BACKUPS/

Co to robi, to łączy się z użytkownikiem na serwerze FTP 192.168.128.2 użytkownik i hasło password i prześlij do folderu SERWER_BACKUPS plik o nazwie file-backup.7z

I gotowy!

Proste, prawda? ...

Oczywiście może nam się to przydać również samo polecenie, jednak najlepiej z niego skorzystać ze skryptu takiego jak ... ten, o którym wspomniałem wcześniej

A co z tym skryptem, o którym jest mowa?

Dokonuję ulepszeń w skrypcie, w szczególności uwzględniając prośby lub sugestie użytkowników.

  • Pierwszą rzeczą, którą chciałem zrobić, było właśnie to, co właśnie ci wyjaśniłem, za pomocą jednego polecenia, aby móc przesłać plik zapisu na FTP.
  • Inną rzeczą, którą polecił mi użytkownik, było wysłanie e-maila, gdy kopia zapasowa była gotowa, do tego mogę użyć Wyślij maila lub skrypt zewnętrzny, Najlepiej będę używać sendmaila. Szczegóły korzystania z sendmaila polegają na tym, że możesz użyć swojego konta GMail (lub innego) do wysyłania wiadomości e-mail, z szyfrowaniem ... SSL i cokolwiek.
  • Ponadto użytkownik zalecił również, jako bardziej dynamiczną formę powiadomienia, wysyłanie wiadomości przez komunikator przy użyciu XMPP lub Hotmaila GTalk (na żywo lub coś w tym rodzaju, nawet nie wiem, jak to się nazywa). Spróbuję to zrobić najpierw z GTalk, ponieważ w przypadku Hotmail musiałbym gdzieś pamiętać lub wesprzeć się, aby utworzyć konto Hotmail, ponieważ przy tak dużej zmianie zmian, jaką ma Microsoft, nie mam pojęcia, jak to jest.
  • Innym wariantem tego ostatniego byłoby wykorzystanie powiadomień lub wiadomości, które są wysyłane przez Facebooka lub Twittera. Na Twitterze możesz użyć Gałązka podczas gdy na Facebooku możesz użyć fbcmd. Obie aplikacje pozwalają mi na interakcję z tymi sieciami społecznościowymi z poziomu terminala.
  • Myślę też o sprawdzeniu integralności sql, który eksportuję, ale to już wymaga trochę więcej czasu :)

serwer ftp

Koniec!

Cóż, nic więcej do dodania ... na razie wykorzystuję kilka moich skryptów wykonanych w Bash, aby je zoptymalizować i ulepszyć, mam nadzieję, że nie zajmie to zbyt dużo czasu, aby przynieść wiadomości 😀

pozdrowienia


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   barnarasta powiedział

    Świetny projekt,
    Będę to śledził z wielkim zainteresowaniem.
    - Jakieś powiadomienie @ jeśli serwer nie działa lub dostawa nie może być wykonana?

    Niezwykle przyjemne do przeczytania artykuły od miłośników terminali / konsoli.

    1cześć2

    1.    KZKG ^ Gaara powiedział

      Cała przyjemność po mojej stronie 🙂

      Dobry pomysł, aby sprawdzić, czy serwer FTP jest online, a jeśli nie, wysłać e-mail ... wezmę to pod uwagę ^ _ ^

  2.   Mojżesz Serrano powiedział

    Dostosowałem Twój skrypt kopii zapasowej i dostosowałem projekt, który umożliwia przesłanie ostatecznego pliku do Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) i wyślij e-mail na koniec przez sendmail.

  3.   łowca powiedział

    Gaara, musisz wypróbować odpowiednie narzędzie do tego: lftp

    Obsługuje nawet dublowanie, synchronizacja repozytoriów z ftp jest bezcenna.

    http://www.cyberciti.biz/faq/lftp-mirror-example/

  4.   Jorge powiedział

    Bardzo interesujące, jest to piękno tego systemu, ten sam wynik można uzyskać na wiele sposobów; Pokażę Ci metodę, w której udało mi się przesłać pliki na serwer ftp, jest trochę rustykalna, ale nadal działa:

    {
    hasło użytkownika echo
    kosz echo
    echo zachęta
    echo cd / katalog / z / serwer / ftp
    echo put plik
    echo blisko
    echo pa
    } | ftp -n server.ftp

    1.    KZKG ^ Gaara powiedział

      OOOHHH ciekawe, nie wiedziałem, co można tak zrobić 😀
      Dziękujemy!

  5.   Sephiroth powiedział

    Inne sposoby, na przykład z wput:

    wput file_to_upload ftp: // USER: PASS@123.123.123.123: 21

    lub dla tych, którzy wolą prostotę w skrypcie używającym starego telnetu:

    ftp -n server_ip << EOF
    użytkownik anonimowy test@test.cu
    wyślij FILE.txt
    wyjście
    EOF

  6.   Xavier powiedział

    Witam, jestem początkującym w Linuksie i nie znam się na komputerach - tylko na poziomie użytkownika - ani na programowaniu, ani nic w tym rodzaju, praktycznie nic o tym nie wiem. Czytałem ten artykuł i na końcu drugiego akapitu przeczytałem słowo „lokalizacja”; to słowo jest nadużywane, miałeś na myśli: lokalizacja, lokalizacja, lokalizacja, miejsce. Słowo lokalizacja oznacza coś innego, jak mówi RAE „http://dle.rae.es/?id=NXeOXqS”.