Envoyer un fichier vers un FTP avec une seule commande

Nous avons déjà vu comment se connecter à un serveur FTP et travailler avec lui (ou avec son contenu) via le terminal, c'est-à-dire sans utiliser d'applications graphiques.

Cette fois, je vous apporte un plus ou un extra ... laissez-moi vous expliquer.

Il y a quelques années je les ai quittés un script bash utilisé pour faire des sauvegardes (enregistre) des données d'un serveur. Le script a copié une série de dossiers (comme / etc /), des bases de données exportées, etc ... et l'a compressé avec un mot de passe dans un fichier .RAR ou .7z (j'utilise actuellement 7z), la seule chose qui manquait au script était de pouvoir télécharger puis ce fichier compressé sur un serveur FTP, de cette manière, la sauvegarde du serveur serait copiée vers un autre emplacement.

Ces jours-ci, j'ai repris le script pour l'optimiser un peu, l'améliorer et évidemment le besoin de ce dernier que je vous ai mentionné s'est manifesté, en téléchargeant l'archive compressée sur un FTP externe.

Comment télécharger sur un FTP avec une seule commande?

Ce dont j'avais besoin était via une seule commande pour me connecter à un FTP avec nom d'utilisateur et mot de passe, et bien; télécharger le fichier dans un dossier spécifique.

Les applications de terminal qui me permettent de me connecter à un FTP, de mettre un utilisateur et un mot de passe et de télécharger des fichiers il y en a beaucoup, mais… qui me permettent de faire tout cela en une seule ligne, avec tous les paramètres déjà spécifiés… là la question.

Après avoir examiné 4 ou 5 ... j'ai pensé, hein !! ... mais ça existe boucle

Télécharger sur un FTP avec curl

Avec curl je peux faire un nombre infini de choses, peut-être que je peux faire ce que je veux ... et c'est tout!

Avec le paramètre -u, je peux spécifier l'utilisateur et le mot de passe, également avec le paramètre -T, je peux lui dire de télécharger un fichier, et enfin de lui dire dans quel FTP et dans quel dossier je veux le télécharger, à la fin je viens de mettez le chemin complet, plus ou moins comme ceci:

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

Ce que cela fait est de se connecter au FTP 192.168.128.2, avec l'utilisateur utilisateur et mot de passe Mot de passe et télécharger dans le dossier SERVER_BACKUPS le fichier appelé sauvegarde de fichiers.7z

Et prêt!

Simple non? ...

Bien sûr, cela peut nous être utile aussi bien que la commande seule, cependant, la meilleure façon de l'utiliser est avec un script tel que ... celui que j'ai mentionné précédemment

Et qu'en est-il de ce script qui est mentionné?

J'apporte des améliorations au script, notamment en intégrant certaines demandes ou suggestions des utilisateurs.

  • La première chose que je voulais faire était précisément celle que je viens de vous expliquer, avec une seule commande pour pouvoir télécharger le fichier de sauvegarde sur un FTP.
  • L'autre chose qu'un utilisateur m'a recommandé était d'envoyer un e-mail lorsque la sauvegarde était prête, pour cela je peux utiliser sendmail ou script externe, J'utiliserai de préférence sendmail. Le détail de l'utilisation de sendmail est que vous pouvez utiliser votre compte GMail (ou tout autre) pour envoyer l'e-mail, avec cryptage ... SSL et autre.
  • De plus, un utilisateur a recommandé qu'en tant que forme de notification plus dynamique, un message soit envoyé par messagerie instantanée en utilisant XMPP ou Hotmail de GTalk (Live ou quelque chose comme ça, je ne sais même pas comment cela s'appelle). Je vais d'abord essayer de le faire avec GTalk, car pour Hotmail, je devrais me souvenir ou me soutenir quelque part pour créer un compte Hotmail, car avec tant de changements-changements que Microsoft a, aucune idée de comment c'est.
  • Une autre variante de ce dernier serait d'utiliser des notifications ou des messages envoyés par Facebook ou Twitter. Pour Twitter, vous pouvez utiliser Twice tandis que pour Facebook, vous pouvez utiliser fbcmd. Les deux applications me permettent d'interagir avec ces réseaux sociaux depuis le terminal.
  • Je pense aussi à vérifier l'intégrité du sql que j'exporte, mais cela demande déjà un peu plus de temps :)

serveur ftp

La fin!

Bon, rien de plus à ajouter ... pour le moment, je reprends plusieurs de mes scripts made in Bash pour les optimiser et les améliorer, j'espère que ça ne me prendra pas trop de temps pour apporter des nouvelles 😀

salutations


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   barnarasta dit

    Grand projet,
    Je vais le suivre avec grand intérêt.
    - Un avis @ si le serveur est en panne ou si la livraison n'a pas pu être effectuée?

    Extrêmement agréable de lire des articles d'amateurs de terminaux / consoles.

    1bonjour2

    1.    KZKG ^ Gaara dit

      Le plaisir est à moi 🙂

      Bonne idée, pour vérifier si le serveur FTP est en ligne et si ce n'est pas le cas, pour envoyer un mail ... je vais en tenir compte ^ _ ^

  2.   Moïse Serrano dit

    J'avais adapté votre script de sauvegarde et adapté un projet qui vous permet de télécharger le fichier final sur Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) et envoyer un mail à la fin par sendmail.

  3.   chasseur dit

    Gaara vous devez essayer le bon outil pour cela: lftp

    Il prend même en charge la mise en miroir, la synchronisation des repos à partir de ftp n'a pas de prix.

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

  4.   Jorge dit

    Très intéressant, c'est la beauté de ce système, vous pouvez obtenir le même résultat de multiples façons; Je vous montre la méthode dans laquelle je parvenais à télécharger des fichiers sur un serveur ftp, c'est un peu rustique mais ça marche toujours:

    {
    echo mot de passe utilisateur utilisateur
    écho bin
    invite d'écho
    echo cd / répertoire / depuis / serveur / ftp
    echo put fichier
    écho fermer
    écho au revoir
    } | ftp -n serveur.ftp

    1.    KZKG ^ Gaara dit

      OOOHHH intéressant, je ne savais pas ce qu'on pouvait faire comme ça 😀
      Je vous remercie!

  5.   Sephiroth dit

    Autres moyens, par exemple avec wput:

    wput file_to_upload ftp: // UTILISATEUR: PASS@123.123.123.123: 21

    ou pour ceux qui préfèrent la simplicité dans un script utilisant l'ancien telnet:

    ftp -n server_ip << EOF
    utilisateur anonyme test@test.cu
    envoyer FILE.txt
    sortie
    EOF

  6.   Xavier dit

    Bonjour, je suis un débutant en Linux et je ne connais pas l'informatique - seulement au niveau de l'utilisateur - ou la programmation, ou quoi que ce soit du genre, j'ignore pratiquement cela. Je lisais cet article et j'ai lu à la fin du deuxième paragraphe le mot «emplacement»; ce mot est mal utilisé, vous avez voulu dire: emplacement, emplacement, emplacement, lieu. Le mot emplacement signifie autre chose comme le RAE dit "http://dle.rae.es/?id=NXeOXqS".