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 :)
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
Ś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
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ę ^ _ ^
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.
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/
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
OOOHHH ciekawe, nie wiedziałem, co można tak zrobić 😀
Dziękujemy!
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
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”.