Send en fil til en FTP med en enkelt kommando

Vi har allerede set, hvordan vi opretter forbindelse til en FTP-server og arbejder med den (eller dens indhold) gennem terminalen, dvs. uden at bruge grafiske applikationer.

Denne gang bringer jeg dig en bonus eller ekstra ... lad mig forklare.

For nogle år siden forlod jeg dem et bash-script, der bruges til at lave sikkerhedskopier (gemmer) data fra en server. Scriptet kopierede en række mapper (som / etc /), eksporterede databaser osv ... og komprimerede det med en adgangskode til en .RAR- eller .7z-fil (jeg bruger i øjeblikket 7z), det eneste som scriptet manglede var være i stand til at uploade efter den komprimerede fil til en eller anden FTP-server, på denne måde kopieres gemningen fra serveren til en anden placering.

I disse dage tog jeg scriptet op igen for at optimere det lidt, forbedre det, og naturligvis kom behovet for sidstnævnte, som jeg nævnte for dig, frem, og uploadede det komprimerede arkiv til en ekstern FTP.

Hvordan uploades til en FTP med en enkelt kommando?

Hvad jeg havde brug for var gennem en enkelt kommando for at oprette forbindelse til en FTP med brugernavn og adgangskode, og godt; uploade filen til en bestemt mappe.

Terminalapplikationer, der giver mig mulighed for at oprette forbindelse til en FTP, sætte bruger og adgangskode og uploade filer, der er mange af dem, men ... det giver mig mulighed for at gøre dette alt sammen på en linje med alle de parametre, der allerede er specificeret ... hej der spørgsmålet.

Efter at have gennemgået 4 eller 5 ... tænkte jeg, hej !! ... men det eksisterer krølle

Upload til en FTP med curl

Med krøller kan jeg gøre et uendeligt antal ting, måske kan jeg gøre, hvad jeg vil ... og det er det!

Med parameteren -u kan jeg specificere brugeren og adgangskoden, også med parameteren T kan jeg bede den om at uploade en fil og til sidst fortælle den til hvilken FTP og hvilken mappe jeg vil uploade den, i slutningen skal jeg bare sæt den fulde sti, mere eller mindre sådan:

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

Hvad dette gør er at oprette forbindelse til FTP 192.168.128.2 med brugeren bruger og adgangskode adgangskode og upload til mappen SERVER_BACKUPS den fil, der hedder backup af filer. 7z

Og klar!

Simpel, ikke? ...

Selvfølgelig kan dette være nyttigt for os såvel som kommandoen alene, men den bedste måde at bruge den på er med et script som ... det, jeg nævnte før

Og hvad med det manuskript, der er nævnt?

Jeg forbedrer scriptet, især med nogle anmodninger eller forslag fra brugerne.

  • Den første ting, jeg ønskede at gøre, var netop dette, som jeg lige forklarede dig med en enkelt kommando for at kunne uploade gemningsfilen til en FTP.
  • Den anden ting, som en bruger anbefalede mig, var at sende en e-mail, når sikkerhedskopien var klar, til det kan jeg bruge Send mail eller eksternt scriptJeg bruger helst sendmail. Detaljen ved at bruge sendmail er, at du kan bruge din GMail-konto (eller enhver anden) til at sende e-mailen med kryptering ... SSL og hvad som helst.
  • En bruger anbefalede også, at der som en mere dynamisk form for underretning også sendes en besked af IM ved hjælp af GTalks XMPP eller Hotmail (Live eller sådan noget, jeg ved ikke engang hvad det hedder). Jeg vil forsøge at gøre det med GTalk først, for for Hotmail bliver jeg nødt til at huske eller støtte mig selv et sted for at oprette en Hotmail-konto, for med så meget ændringsændring, som Microsoft har, ingen idé om, hvordan det er.
  • En anden variant af sidstnævnte ville være at bruge meddelelser eller beskeder, der sendes af Facebook eller Twitter. Til Twitter kan du bruge Twidge mens du til Facebook kunne bruge fbcmd. Begge applikationer giver mig mulighed for at interagere med disse sociale netværk fra terminalen.
  • Jeg tænker også på at kontrollere integriteten af ​​den sql, som jeg eksporterer, men det kræver allerede lidt mere tid :)

ftp-server

Slutningen!

Nå, intet mere at tilføje ... for øjeblikket tager jeg flere af mine scripts lavet i Bash for at optimere og forbedre dem, jeg håber det tager ikke for lang tid at bringe nyheder 😀

hilsen


8 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   barnarasta sagde han

    Fantastisk projekt,
    Jeg vil følge det med stor interesse.
    - Enhver meddelelse @ hvis serveren er nede eller levering ikke kunne foretages?

    Utroligt behageligt at læse artikler fra terminal- / konsolelskere.

    1 salu2

    1.    KZKG ^ Gaara sagde han

      Glæden er min 🙂

      God idé at kontrollere, om FTP-serveren er online, og hvis den ikke er, at sende en e-mail ... Jeg tager den i betragtning ^ _ ^

  2.   Moses Serrano sagde han

    Jeg havde tilpasset dit backup-script og tilpasset et projekt, der giver dig mulighed for at uploade den endelige fil til Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) og send en e-mail i slutningen via sendmail.

  3.   djæger sagde han

    Gaara, du skal prøve det rigtige værktøj til dette: lftp

    Det understøtter endda spejling, at synkronisere repos fra ftp er uvurderlig.

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

  4.   Jorge sagde han

    Meget interessant, det er skønheden i dette system, du kan opnå det samme resultat på flere måder; Jeg viser dig den metode, hvor jeg formåede at uploade filer til en ftp-server, den er lidt rustik, men den fungerer stadig:

    {
    ekko brugerbrugeradgangskode
    ekko skraldespand
    ekko-prompt
    ekko cd / bibliotek / fra / server / ftp
    ekko sæt fil
    ekko tæt
    ekko farvel
    } | ftp -n server.ftp

    1.    KZKG ^ Gaara sagde han

      OOOHHH interessant, jeg vidste ikke, hvad der kunne gøres sådan 😀
      Tak!

  5.   Sephiroth sagde han

    Andre måder, for eksempel med wput:

    wput fil_til_upload ftp: // BRUGER: PASS@123.123.123.123: 21

    eller for dem, der foretrækker enkelhed i et script ved hjælp af det gamle telnet:

    ftp -n server_ip << EOF
    bruger anonym test@test.cu
    send FILE.txt
    frakørsel
    EOF

  6.   Xavier sagde han

    Hej, jeg er nybegynder i Linux, og jeg kender ikke datalogi - kun på brugerniveau - eller programmering eller noget lignende, jeg er praktisk talt uvidende om dette. Jeg læste denne artikel, og jeg læste i slutningen af ​​andet afsnit ordet "placering"; dette ord misbruges, du har ment: placering, placering, placering, sted. Ordet placering betyder noget andet, da RAE siger "http://dle.rae.es/?id=NXeOXqS".