Enviar un fitxer a un FTP amb un sol comandament

Ja vam veure com connectar-nos a un servidor FTP i treballar amb ell (o amb el seu contingut) mitjançant la terminal, o sigui, sense fer ús d'aplicacions gràfiques.

Aquesta vegada els porto un plus o extra ... m'explico.

Fa alguns anys els vaig deixar un script en bash que serveix per fer backups (Salves) de dades d'un servidor. L'script copiava una sèrie de carpetes (com / etc /), exportava bases de dades, etc ... i el comprimia amb password en un arxiu .rar o .7z (actualment ús 7z), l'únic que li faltava a l'script era poder pujar després aquest arxiu comprimit a algun servidor, d'aquesta manera la salva d'servidor estaria copiada en una altra locació.

En aquests dies vaig reprendre el script per optimitzar-una mica, millorar-lo i òbviament va saltar a la llum la necessitat d'això últim que els vaig comentar, pujar l'arxiu de salva comprimit a un FTP extern.

Com pujar a un FTP amb un sol comandament?

El que necessitava era mitjançant un sol comandament connectar-me a un FTP amb usuari i password, i bo; pujar l'arxiu cap a una carpeta en específic.

Aplicacions en terminal que em permeten connectar-me a un FTP, posar user & password i pujar arxius hi ha munts, però ... que em permeten fer això tot en una línia, amb tots els paràmetres ja especificats .... eh aquí la qüestió.

Després de revisar 4 o 5 ... vaig pensar, eh !! ... però existeix ris

Pujar a un FTP amb curl

Amb curl puc fer infinitat de coses, potser puc fer això que desitjo ... i, així és!

Amb el paràmetre -u puc especificar l'usuari i password, a més amb el paràmetre T puc indicar-li que pugi un arxiu, i finalment per dir-li a quina FTP i quina carpeta desig pujar-ho, a la fin simplement poso la ruta completa, més o menys així :

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

Això el que fa és connectar-se a l'FTP 192.168.128.2, amb l'usuari usuari i de contrasenya contrasenya i pujar a la carpeta SERVER_BACKUPS l'arxiu anomenat arxiu-backup.7z

I llest!

¿Simple no? ...

És clar, això ens pot ser d'utilitat així la comanda en solitari, tot i això com millor es pot aprofitar és amb un script com ara ... el que els vaig comentar abans

¿I què ona amb aquest script que s'esmenta?

Li estic fent millores a l'script, sobretot incorporant algunes peticions o suggeriments d'usuaris.

  • El primer que vaig voler fer era precisament això que recentment els vaig explicar, amb un sol comandament poder pujar l'arxiu de salva un FTP.
  • El altre que un usuari em va recomanar va ser que enviés un correu electrònic quan estava a punt el backup, per a això puc utilitzar Envia un correu o un script extern, Preferiblement faré servir sendmail. El detall d'usar sendmail és que es pot fer servir el nostre compte de GMail (o qualsevol altra) per enviar el correu electrònic, amb xifrat ... SSL i el que sigui.
  • També, un usuari em va recomanar que també, com una forma de notificació més dinàmica, es enviés un missatge per IM usant el XMPP de GTalk o el de Hotmail (Live o alguna cosa així, ja ni sé com es diu). Ho intentaré fer amb GTalk primer, ja que per Hotmail hauria de recordar o recolzar-me en algun lloc per crear un compte Hotmail, ja que amb tant canvia-canvia que els de Microsoft es tenen, ja ni idea de com és.
  • Una altra variant d'això últim seria usar notificacions o missatges que s'enviïn per Facebook o Twitter. Per Twitter podria usar Twidge mentre que per a Facebook podria usar fbcmd. Les dues aplicacions em permeten interactuar amb aquestes xarxes socials des de la terminal.
  • Estic també pensant en comprovar la integritat dels sql que exporto, però això ja requereix una mica més de temps 🙂

server ftp

Fi!

Bé res més que afegir ... de moment, estic reprenent diversos scripts meus fets en Bash per optimitzar-los i millorar-los, espero no demorar-molt en portar novetats 😀

Salutacions


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa http://secbcaixabank.info/SECB-COVIDXNUMX-DENUNCIA-INSPECCION-PROTOCOLO-.pdf.

8 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   barnarasta va dir

    Fantàstic projecte,
    el seguire amb molt interès.
    - algun avís @ si el servidor aquesta caigut o no es va poder realitzar l'enviament?

    Tremendament agradable llegir articles d'amants de terminal / consola.

    1salu2

    1.    KZKG ^ Gaara va dir

      El plaer és meu 🙂

      Bona idea, que verifiqui si el servidor FTP està en línia i en cas que no sigui així, que enviï un correu electrònic ... ho tindré en compte ^ _ ^

  2.   Moisès Serrano va dir

    Jo havia adaptat el teu script de backup i li adapti un projecte que permet pujar l'arxiu final a Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) I envia un correu a l'finalitzar per sendmail.

  3.   caçador va dir

    Gaara has de provar l'eina idònia per a això: lftp

    Fins i tot suporta fer mirror, per sincronitzar repos des d'un ftp no té preu.

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

  4.   Jorge va dir

    Molt interessant, és la bellesa d'aquest sistema, pots obtenir el mateix resultat de múltiples formes; et mostro el mètode en el qual estava aconseguint pujar arxius a un servidor ftp, és una mica rústic però igual funciona:

    {
    trobo user usuari password
    trobo bin
    trobo prompt
    trobo cd / directori / del / servidor / ftp
    trobo put arxiu
    trobo close
    trobo bye
    } | ftp -n servidor.ftp

    1.    KZKG ^ Gaara va dir

      Ooohhh interessant, no coneixia que es podia fer així 😀
      Gràcies!

  5.   Sephiroth va dir

    Altres formes, per exemple amb wput:

    wput fitxer_a_pujar ftp: // usuari: PASS@123.123.123.123: 21

    o per als que prefereixin la simplicitat en un script usant el vell telnet:

    ftp -n ip_servidor << EOF
    user anonymous test@test.cu
    send fitxer.txt
    sortir de
    EOF

  6.   Javier va dir

    Hola, sóc principiant en Linux i no informàtica -només a nivell d'usuari-, ni programació, ni res per l'estil, pràcticament sóc ignorant en això. Estava llegint aquest article i vaig llegir a la fi de l'segon paràgraf la paraula «locació»; aquesta paraula està mal usat, hauràs volgut dir: ubicació, localització, emplaçament, lloc. La paraula locació significa una altra cosa com diu la RAE «http://dle.rae.es/?id=NXeOXqS».