Send en fil til en FTP med en enkelt kommando

Vi har allerede sett hvordan vi skal koble til en FTP-server og jobbe med den (eller dens innhold) gjennom terminalen, det vil si uten å bruke grafiske applikasjoner.

Denne gangen gir jeg deg en bonus eller ekstra ... la meg forklare.

For noen år siden forlot jeg dem et bash-skript som brukes til å lage sikkerhetskopier (lagrer) data fra en server. Skriptet kopierte en serie mapper (som / etc /), eksporterte databaser osv ... og komprimerte det med et passord til en .RAR- eller .7z-fil (jeg bruker for øyeblikket 7z), det eneste skriptet manglet var å kunne laste opp etter den komprimerte filen til en eller annen FTP-server, på denne måten kopieres lagringen fra serveren til et annet sted.

I disse dager tok jeg opp skriptet igjen for å optimalisere det litt, forbedre det og tydeligvis kom behovet for det siste som jeg nevnte for deg fram, og lastet opp det komprimerte arkivet til en ekstern FTP.

Hvordan laster du opp til en FTP med en enkelt kommando?

Det jeg trengte var gjennom en enkelt kommando for å koble til en FTP med brukernavn og passord, og vel; laste opp filen til en bestemt mappe.

Terminalapplikasjoner som tillater meg å koble til en FTP, sette bruker og passord og laste opp filer, det er mange, men ... som lar meg gjøre dette på en linje, med alle parametrene som allerede er spesifisert ... hei det spørsmålet.

Etter å ha gjennomgått 4 eller 5 ... tenkte jeg, he !! ... men den eksisterer curl

Last opp til en FTP med krøll

Med krøll kan jeg gjøre uendelig mange ting, kanskje jeg kan gjøre det jeg vil ... og det er det!

Med -u-parameteren kan jeg spesifisere bruker og passord, også med -T-parameteren kan jeg fortelle den å laste opp en fil, og til slutt fortelle den til hvilken FTP og hvilken mappe jeg vil laste den opp, på slutten bare legg hele veien, mer eller mindre slik:

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

Hva dette gjør er å koble til FTP 192.168.128.2, med brukeren usuario og passord passord og laste opp til mappen SERVER_BACKUPS filen som heter sikkerhetskopi av fil. 7z

Og klar!

Enkelt ikke sant? ...

Selvfølgelig kan dette være nyttig for oss i tillegg til kommandoen alene, men den beste måten å bruke den på er med et skript som ... det jeg nevnte før

Og hva med det skriptet som er nevnt?

Jeg forbedrer skriptet, spesielt med noen forespørsler eller forslag fra brukere.

  • Det første jeg ønsket å gjøre var nettopp dette jeg nettopp forklarte deg, med en enkelt kommando for å kunne laste opp lagringsfilen til en FTP.
  • Den andre tingen som en bruker anbefalte meg var å sende en e-post når sikkerhetskopien var klar, for det kan jeg bruke sendmail det er eksternt skript, Jeg vil helst bruke sendmail. Detaljene ved å bruke sendmail er at du kan bruke GMail-kontoen din (eller andre) til å sende e-posten, med kryptering ... SSL og hva som helst.
  • Også, en bruker anbefalte at det også, som en mer dynamisk varslingsform, sendes en melding fra IM ved hjelp av GTalks XMPP eller Hotmail (Live eller noe sånt, jeg vet ikke engang hva det heter). Jeg vil prøve å gjøre det med GTalk først, for for Hotmail må jeg huske eller støtte meg selv et sted for å opprette en Hotmail-konto, for med så mye endringsendring som Microsoft har, aner ikke hvordan det er.
  • En annen variant av sistnevnte ville være å bruke varsler eller meldinger som sendes av Facebook eller Twitter. For Twitter kan du bruke Twidge mens du kan bruke for Facebook fbcmd. Begge applikasjonene lar meg samhandle med disse sosiale nettverkene fra terminalen.
  • Jeg tenker også å sjekke integriteten til sql som jeg eksporterer, men dette krever allerede litt mer tid :)

ftp server

Slutten!

Vel, ingenting mer å legge til ... for øyeblikket tar jeg opp flere av skriptene mine laget i Bash for å optimalisere og forbedre dem, jeg håper det ikke tar for lang tid å bringe nyheter 😀

Hilsen


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

8 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   barnarasta sa

    Flott prosjekt,
    Jeg vil følge det med stor interesse.
    - Noen melding @ hvis serveren er nede eller leveringen ikke kan gjøres?

    Utrolig hyggelig å lese artikler fra terminal- / konsollelskere.

    1salu2

    1.    KZKG ^ Gaara sa

      Gleden er min 🙂

      God idé, for å verifisere om FTP-serveren er online, og hvis den ikke er det, sende en e-post ... Jeg tar det i betraktning ^ _ ^

  2.   Moses Serrano sa

    Jeg hadde tilpasset backup-skriptet ditt og tilpasset et prosjekt som lar deg laste opp den endelige filen til Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) og send en e-post til slutt med sendmail.

  3.   dhunter sa

    Gaara, du må prøve det rette verktøyet for dette: lftp

    Det støtter til og med speiling, å synkronisere repoer fra ftp er uvurderlig.

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

  4.   Jorge sa

    Veldig interessant, det er skjønnheten i dette systemet, du kan oppnå det samme resultatet på flere måter; Jeg viser deg metoden jeg klarte å laste opp filer til en ftp-server, den er litt rustikk, men den fungerer fremdeles:

    {
    ekko brukerpassord
    ekko søppel
    ekko-ledetekst
    ekko cd / katalog / fra / server / ftp
    ekko sette fil
    ekko tett
    ekko farvel
    } | ftp -n server.ftp

    1.    KZKG ^ Gaara sa

      OOOHHH interessant, jeg visste ikke hva som kunne gjøres sånn 😀
      Takk!

  5.   Sephiroth sa

    Andre måter, for eksempel med wput:

    wput fil_til_opplasting ftp: // BRUKER: PASS@123.123.123.123: 21

    eller for de som foretrekker enkelhet i et skript ved hjelp av det gamle telnet:

    ftp -n server_ip << EOF
    bruker anonym test@test.cu
    send FIL.txt
    avslutte
    EOF

  6.   Xavier sa

    Hei, jeg er nybegynner i Linux og kjenner ikke informatikk - bare på brukernivå - eller programmering, eller noe sånt, jeg er praktisk talt uvitende om dette. Jeg leste denne artikkelen og jeg leste på slutten av andre avsnitt ordet "plassering"; det ordet blir misbrukt, du har ment: plassering, plassering, plassering, sted. Ordet plassering betyr noe annet som RAE sier "http://dle.rae.es/?id=NXeOXqS".