Am văzut deja cum să ne conectăm la un server FTP și să lucrăm cu acesta (sau conținutul său) prin terminal, adică fără a utiliza aplicații grafice.
De data aceasta îți aduc un bonus sau un plus ... lasă-mă să explic.
Acum câțiva ani i-am părăsit un script bash folosit pentru a face copii de rezervă (salvează) date de pe un server. Scriptul a copiat o serie de foldere (cum ar fi / etc /), a exportat baze de date etc ... și a comprimat-o cu o parolă într-un fișier .RAR sau .7z (în prezent folosesc 7z), singurul lucru care îi lipsea scriptului era fiind capabil să încărcați după acel fișier comprimat pe un server FTP, în acest fel salvarea de pe server ar fi copiată într-o altă locație.
În aceste zile am preluat din nou scriptul pentru a-l optimiza un pic, pentru a-l îmbunătăți și, evident, a apărut nevoia acestuia din urmă pe care v-am menționat-o, încărcând arhiva comprimată pe un FTP extern.
Cum se încarcă pe un FTP cu o singură comandă?
Aveam nevoie de o singură comandă pentru a mă conecta la un FTP cu nume de utilizator și parolă, și bine; încărcați fișierul într-un anumit folder.
Aplicațiile terminale care îmi permit să mă conectez la un FTP, să pun utilizator și parolă și să încărc fișiere acolo sunt multe, dar ... care îmi permit să fac asta într-o singură linie, cu toți parametrii deja specificați .... hei acolo întrebarea.
După ce am analizat 4 sau 5 ... m-am gândit, nu! ... dar există răsuci
Încărcați pe un FTP cu curl
Cu curlul pot face un număr infinit de lucruri, poate pot face ce vreau ... și atât!
Cu parametrul -u pot specifica utilizatorul și parola, de asemenea, cu parametrul -T îi pot spune să încarce un fișier și, în cele din urmă, să-i spun în ce FTP și în ce folder vreau să îl încărc, la sfârșit puneți calea completă, mai mult sau mai puțin așa:
curl -u usuario:password -T archivo-backup.7z ftp://192.168.128.2/SERVER_BACKUPS/
Ceea ce face este să vă conectați la FTP 192.168.128.2, cu utilizatorul utilizator și parola parola și încărcați în dosar SERVER_BACKUPS fișierul numit backup-fișier.7z
Și gata!
Simplu nu? ...
Desigur, acest lucru ne poate fi util și la comandă, însă cel mai bun mod de a-l folosi este cu un script precum ... cel pe care l-am menționat înainte
Și ce zici de acel script menționat?
Aduc îmbunătățiri scriptului, în special încorporând unele cereri sau sugestii de la utilizatori.
- Primul lucru pe care am vrut să-l fac a fost tocmai acest lucru pe care tocmai ți l-am explicat, cu o singură comandă pentru a putea încărca fișierul de salvare pe un FTP.
- Celălalt lucru pe care mi l-a recomandat un utilizator a fost să trimit un e-mail când copia de rezervă a fost gata, pentru asta o pot folosi sendmail sau un script extern, De preferință voi folosi sendmail. Detaliul utilizării sendmail este că vă puteți folosi contul GMail (sau orice altul) pentru a trimite e-mailul, cu criptare ... SSL și orice altceva.
- De asemenea, un utilizator a recomandat ca, ca o formă mai dinamică de notificare, un mesaj să fie trimis de IM utilizând XMPP sau Hotmail GTalk (Live sau ceva de genul asta, nici măcar nu știu cum se numește). Mai întâi voi încerca să fac asta cu GTalk, pentru că pentru Hotmail ar trebui să-mi amintesc sau să mă susțin undeva pentru a-mi crea un cont Hotmail, deoarece cu atât de multe schimbări pe care le are Microsoft, habar n-are cum este.
- O altă variantă a acestuia din urmă ar fi utilizarea notificărilor sau a mesajelor trimise de Facebook sau Twitter. Pentru Twitter ai putea folosi Twidge în timp ce pentru Facebook ai putea folosi fbcmd. Ambele aplicații îmi permit să interacționez cu aceste rețele sociale de la terminal.
- De asemenea, mă gândesc să verific integritatea sql-ului pe care îl export, dar acest lucru necesită deja ceva mai mult timp :)
Sfarsit!
Ei bine, nimic mai mult de adăugat ... pentru moment, iau câteva dintre scripturile mele realizate în Bash pentru a le optimiza și îmbunătăți, sper că nu va dura prea mult să aduc știri 😀
În ceea ce priveşte
Proiect grozav,
O voi urmări cu mare interes.
- Orice notificare @ dacă serverul este defect sau livrarea nu a putut fi făcută?
Extrem de plăcut să citești articole de la iubitorii de terminale / console.
1salut2
Plăcerea este a mea 🙂
Bună idee, pentru a verifica dacă serverul FTP este online și dacă nu, pentru a trimite un e-mail ... îl voi lua în calcul ^ _ ^
V-am adaptat scriptul de rezervă și am adaptat un proiect care vă permite să încărcați fișierul final în Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) și trimiteți un e-mail la final prin sendmail.
Gaara trebuie să încercați instrumentul potrivit pentru aceasta: lftp
Suportă chiar oglindirea, pentru a sincroniza repo-urile din ftp nu are preț.
http://www.cyberciti.biz/faq/lftp-mirror-example/
Foarte interesant, este frumusețea acestui sistem, puteți obține același rezultat în mai multe moduri; Vă arăt metoda prin care am reușit să încărc fișiere pe un server ftp, este cam rustică, dar funcționează în continuare:
{
ecou parolă utilizator utilizator
coș de ecou
prompt de ecou
echo cd / director / din / server / ftp
ecou pune fișier
ecou aproape
ecou pa
} | ftp -n server.ftp
OOOHHH interesant, nu știam ce se poate face așa 😀
Vă mulțumim!
Alte moduri, de exemplu cu wput:
wput file_to_upload ftp: // UTILIZATOR: PASS@123.123.123.123: 21
sau pentru cei care preferă simplitatea într-un script folosind vechiul telnet:
ftp -n server_ip << EOF
utilizator anonim test@test.cu
trimiteți FILE.txt
ieşire
EOF
Bună ziua, sunt începător în Linux și nu știu informatică - doar la nivel de utilizator - sau programare, sau ceva de genul asta, practic știu despre asta. Citeam acest articol și citeam la sfârșitul celui de-al doilea paragraf cuvântul „locație”; cuvântul respectiv este folosit greșit, ați vrut să spuneți: locație, locație, locație, loc. Cuvântul locație înseamnă altceva, după cum spune RAE „http://dle.rae.es/?id=NXeOXqS”.