Trimiteți un fișier către un FTP cu o singură comandă

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 :)

server-ftp

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


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   barnarasta el a spus

    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

    1.    KZKG ^ Gaara el a spus

      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 ^ _ ^

  2.   Moses Serrano el a spus

    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.

  3.   dhunter el a spus

    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/

  4.   Jorge el a spus

    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

    1.    KZKG ^ Gaara el a spus

      OOOHHH interesant, nu știam ce se poate face așa 😀
      Vă mulțumim!

  5.   Sephiroth el a spus

    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

  6.   Xavier el a spus

    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”.