Skicka en fil till en FTP med ett enda kommando

Vi har redan sett hur man ansluter till en FTP-server och arbetar med den (eller dess innehåll) via terminalen, det vill säga utan att använda grafiska applikationer.

Den här gången ger jag dig ett plus eller ett extra ... låt mig förklara.

För några år sedan lämnade jag dem ett bash-skript som används för att säkerhetskopiera (sparar) data från en server. Skriptet kopierade en serie mappar (som / etc /), exporterade databaser osv ... och komprimerade det med ett lösenord till en .RAR- eller .7z-fil (jag använder för närvarande 7z), det enda som skriptet saknade var för att kunna ladda upp den komprimerade filen till någon FTP-server, på detta sätt kopieras sparandet från servern till en annan plats.

Dessa dagar tog jag upp skriptet igen för att optimera det lite, förbättra det och uppenbarligen kom behovet av det sista som jag nämnde för dig fram och laddade upp det komprimerade arkivet till en extern FTP.

Hur laddar jag upp till en FTP med ett enda kommando?

Vad jag behövde var genom ett enda kommando för att ansluta till en FTP med användarnamn och lösenord, och väl; ladda upp filen till en specifik mapp.

Terminalapplikationer som tillåter mig att ansluta till en FTP, sätta användare och lösenord och ladda upp filer finns det många, men ... som tillåter mig att göra detta på en rad, med alla parametrar som redan har angivits .... hej där frågan.

Efter att ha granskat 4 eller 5 ... tänkte jag, va !! ... men det finns curl

Ladda upp till en FTP med curl

Med curl kan jag göra ett oändligt antal saker, kanske kan jag göra vad jag vill ... och det är det!

Med parametern -u kan jag ange användare och lösenord, även med parametern -T kan jag be den att ladda upp en fil, och slutligen berätta den till vilken FTP och vilken mapp jag vill ladda upp den, i slutet bara sätt hela vägen, mer eller mindre så här:

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

Vad detta gör är att ansluta till FTP 192.168.128.2 med användaren Usuario och lösenord Lösenord och ladda upp till mappen SERVER_BACKUPS filen som heter säkerhetskopiering av fil. 7z

Och redo!

Enkelt, eller hur? ...

Naturligtvis kan detta vara användbart för oss och kommandot ensam, men det bästa sättet att använda det är med ett skript som ... det jag nämnde tidigare

Och hur är det med det manuset som nämns?

Jag gör förbättringar av skriptet, särskilt med vissa förfrågningar eller förslag från användare.

  • Det första jag ville göra var just detta som jag just förklarade för dig, med ett enda kommando för att kunna ladda upp sparfilen till en FTP.
  • Det andra som en användare rekommenderade var att skicka ett mejl när säkerhetskopian var klar, för det kan jag använda skicka brev eller ett externt skript, Jag använder helst sendmail. Detaljen med att använda sendmail är att du kan använda ditt GMail-konto (eller något annat) för att skicka e-postmeddelandet, med kryptering ... SSL och vad som helst.
  • Dessutom rekommenderade en användare att ett meddelande skickas av IM med hjälp av GTalks XMPP eller Hotmail (Live eller något liknande, jag vet inte ens vad det heter) som en mer dynamisk form av avisering. Jag kommer att försöka göra det med GTalk först, för för Hotmail skulle jag behöva komma ihåg eller stödja mig själv någonstans för att skapa ett Hotmail-konto, för med så mycket förändringsförändring som Microsoft har ingen aning om hur det är.
  • En annan variant av den senare skulle vara att använda aviseringar eller meddelanden som skickas av Facebook eller Twitter. För Twitter kan du använda Twidge medan för Facebook kan du använda fbcmd. Båda applikationerna tillåter mig att interagera med dessa sociala nätverk från terminalen.
  • Jag funderar också på att kontrollera integriteten för den SQL som jag exporterar, men det kräver redan lite mer tid :)

fTP-server

Slutet!

Tja, inget mer att lägga till ... för tillfället tar jag upp flera av mina skript gjorda i Bash för att optimera och förbättra dem, jag hoppas att det inte tar för lång tid att komma med nyheter 😀

hälsningar


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

8 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   barnarasta sade

    Bra projekt,
    Jag kommer att följa det med stort intresse.
    - Något meddelande @ om servern är nere eller leveransen inte kunde göras?

    Fantastiskt roligt att läsa artiklar från terminal / konsolälskare.

    1 hej2

    1.    KZKG ^ Gaara sade

      Nöjet är mitt 🙂

      Bra idé att verifiera om FTP-servern är online och om den inte är det, skicka ett e-postmeddelande ... Jag tar hänsyn till det ^ _ ^

  2.   Moses Serrano sade

    Jag hade anpassat ditt säkerhetskopieringsskript och anpassat ett projekt som låter dig ladda upp den slutliga filen till Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) och skicka ett e-postmeddelande i slutet via sendmail.

  3.   djägare sade

    Gaara du måste prova rätt verktyg för detta: lftp

    Det stöder till och med spegling, att synkronisera repor från ftp är ovärderligt.

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

  4.   jorge sade

    Mycket intressant, det är skönheten i detta system, du kan få samma resultat på flera sätt; Jag visar dig metoden där jag lyckades ladda upp filer till en ftp-server, det är lite rustikt men det fungerar fortfarande:

    {
    eko-användarnas lösenord
    ekofack
    ekoprompt
    echo cd / katalog / från / server / ftp
    echo put-fil
    eko nära
    ek hejdå
    } | ftp -n server.ftp

    1.    KZKG ^ Gaara sade

      OOOHHH intressant, jag visste inte vad som kunde göras så 😀
      Tack!

  5.   Sephiroth sade

    Andra sätt, till exempel med wput:

    wput file_to_upload ftp: // ANVÄNDARE: PASS@123.123.123.123: 21

    eller för dem som föredrar enkelhet i ett skript med det gamla telnet:

    ftp -n server_ip << EOF
    användare anonym test@test.cu
    skicka FIL.txt
    avsluta
    EOF

  6.   Xavier sade

    Hej, jag är nybörjare i Linux och jag kan inte datavetenskap - bara på användarnivå - eller programmering, eller något liknande, jag är praktiskt taget okunnig om detta. Jag läste den här artikeln och jag läste i slutet av andra stycket ordet "plats"; det ordet missbrukas, du har menat: plats, plats, plats, plats. Ordet plats betyder något annat eftersom RAE säger "http://dle.rae.es/?id=NXeOXqS".