Senden Sie eine Datei mit einem einzigen Befehl an einen FTP

Wir haben bereits gesehen, wie Sie eine Verbindung zu einem FTP-Server herstellen und über das Terminal mit ihm (oder seinem Inhalt) arbeiten können, dh ohne Grafikanwendungen zu verwenden.

Dieses Mal bringe ich dir einen Bonus oder ein Extra ... lass es mich erklären.

Vor einigen Jahren habe ich sie verlassen Ein Bash-Skript, mit dem Backups erstellt werden (speichert) Daten von einem Server. Das Skript kopierte eine Reihe von Ordnern (wie / etc /), exportierte Datenbanken usw. und komprimierte sie mit einem Passwort in eine .RAR- oder .7z-Datei (ich verwende derzeit 7z). Das einzige, was dem Skript fehlte, war Wenn Sie diese komprimierte Datei auf einen FTP-Server hochladen können, wird das Speichern vom Server auf diese Weise an einen anderen Speicherort kopiert.

In diesen Tagen habe ich das Skript aufgegriffen, um es ein wenig zu optimieren, zu verbessern, und offensichtlich wurde die Notwendigkeit für das Letzte, was ich Ihnen gegenüber erwähnt habe, deutlich, als ich das komprimierte Archiv auf einen externen FTP-Server hochlud.

Wie lade ich mit einem einzigen Befehl auf einen FTP hoch?

Was ich brauchte, war über einen einzigen Befehl, um eine Verbindung zu einem FTP mit Benutzername und Passwort herzustellen. Laden Sie die Datei in einen bestimmten Ordner hoch.

Terminalanwendungen, mit denen ich eine Verbindung zu einem FTP herstellen, Benutzer und Kennwort eingeben und Dateien hochladen kann, gibt es viele, aber… die es mir ermöglichen, dies alles in einer Zeile mit allen bereits angegebenen Parametern zu tun…. Hey da die Frage.

Nachdem ich 4 oder 5 überprüft hatte… dachte ich, huh !! ... aber es existiert curl

Hochladen auf einen FTP mit Curl

Mit Curl kann ich unendlich viele Dinge tun, vielleicht kann ich tun, was ich will ... und das war's!

Mit dem Parameter -u kann ich den Benutzer und das Passwort angeben, auch mit dem Parameter -T kann ich ihm sagen, dass er eine Datei hochladen und schließlich mitteilen soll, in welchen FTP- und welchen Ordner ich sie hochladen möchte, am Ende habe ich gerade Setzen Sie den vollständigen Pfad mehr oder weniger so:

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

Dadurch wird mit dem Benutzer eine Verbindung zum FTP 192.168.128.2 hergestellt Benutzer und Passwort Passwort und in den Ordner hochladen SERVER_BACKUPS die Datei aufgerufen Dateisicherung.7z

Und fertig!

Einfach richtig? ...

Natürlich kann dies sowohl für uns als auch für den Befehl allein nützlich sein. Der beste Weg, ihn zu verwenden, ist jedoch ein Skript wie ... das zuvor erwähnte

Und was ist mit dem erwähnten Skript?

Ich mache Verbesserungen am Skript, insbesondere unter Einbeziehung einiger Anfragen oder Vorschläge von Benutzern.

  • Das erste, was ich tun wollte, war genau das, was ich Ihnen gerade erklärt habe, mit einem einzigen Befehl, um die Sicherungsdatei auf einen FTP-Server hochladen zu können.
  • Das andere, was mir ein Benutzer empfohlen hat, war, eine E-Mail zu senden, wenn das Backup fertig war, damit ich es verwenden kann sendmail oder einen externes SkriptIch werde vorzugsweise sendmail verwenden. Das Detail bei der Verwendung von sendmail ist, dass Sie Ihr GMail-Konto (oder ein anderes) zum Senden der E-Mail mit Verschlüsselung verwenden können ... SSL und was auch immer.
  • Außerdem empfahl ein Benutzer, dass IM als dynamischere Form der Benachrichtigung eine Nachricht von IM mit XalkP oder Hotmail von GTalk gesendet werden sollte (Live oder ähnliches, ich weiß nicht einmal, wie es heißt). Ich werde versuchen, dies zuerst mit GTalk zu tun, da ich mich für Hotmail irgendwo erinnern oder unterstützen müsste, um ein Hotmail-Konto zu erstellen, da Microsoft bei so vielen Änderungen keine Ahnung hat, wie es ist.
  • Eine andere Variante des letzteren wäre die Verwendung von Benachrichtigungen oder Nachrichten, die von Facebook oder Twitter gesendet werden. Für Twitter könnten Sie verwenden Zweig während für Facebook könnte man verwenden fbcmd. Mit beiden Anwendungen kann ich vom Terminal aus mit diesen sozialen Netzwerken interagieren.
  • Ich denke auch darüber nach, die Integrität des von mir exportierten SQL zu überprüfen, aber dies erfordert bereits etwas mehr Zeit :)

FTP-Server

Das Ende!

Nun, nichts mehr hinzuzufügen ... im Moment greife ich auf einige meiner in Bash erstellten Skripte zurück, um sie zu optimieren und zu verbessern. Ich hoffe, es wird nicht zu lange dauern, um Neuigkeiten zu bringen 😀

Grüße


8 Kommentare, hinterlasse deine

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Barnarasta sagte

    Tolles Projekt,
    Ich werde es mit großem Interesse verfolgen.
    - Gibt es einen Hinweis @, wenn der Server ausfällt oder die Lieferung nicht erfolgen konnte?

    Es macht unglaublich viel Spaß, Artikel von Terminal- / Konsolenliebhabern zu lesen.

    1Hallo2

    1.    KZKG ^ Gaara sagte

      Das Vergnügen liegt bei mir 🙂

      Gute Idee, um zu überprüfen, ob der FTP-Server online ist und wenn nicht, um eine E-Mail zu senden ... Ich werde dies berücksichtigen ^ _ ^

  2.   Moses Serrano sagte

    Ich hatte Ihr Backup-Skript angepasst und ein Projekt angepasst, mit dem Sie die endgültige Datei in Dropbox hochladen können (https://github.com/andreafabrizi/Dropbox-Uploader) und senden Sie am Ende eine E-Mail per sendmail.

  3.   Dhunter sagte

    Gaara du musst das richtige Werkzeug dafür ausprobieren: lftp

    Es unterstützt sogar das Spiegeln. Das Synchronisieren von Repos von FTP ist von unschätzbarem Wert.

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

  4.   Jorge sagte

    Sehr interessant, es ist die Schönheit dieses Systems, Sie können das gleiche Ergebnis auf mehrere Arten erzielen; Ich zeige Ihnen die Methode, mit der ich es geschafft habe, Dateien auf einen FTP-Server hochzuladen. Es ist ein bisschen rustikal, aber es funktioniert immer noch:

    {
    Echo Benutzer Benutzer Passwort
    Echobehälter
    Echo-Eingabeaufforderung
    Echo CD / Verzeichnis / von / Server / FTP
    Echo Put-Datei
    Echo schließen
    Echo Tschüss
    } | ftp -n server.ftp

    1.    KZKG ^ Gaara sagte

      OOOHHH interessant, ich wusste nicht, was so gemacht werden kann 😀
      Danke!

  5.   Sephiroth sagte

    Andere Möglichkeiten, zum Beispiel mit wput:

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

    oder für diejenigen, die die Einfachheit eines Skripts mit dem alten Telnet bevorzugen:

    ftp -n server_ip << EOF
    Benutzer anonym test@test.cu
    sende FILE.txt
    wunsch
    EOF

  6.   Xavier sagte

    Hallo, ich bin ein Anfänger in Linux und kenne keine Informatik - nur auf Benutzerebene - oder Programmierung oder ähnliches, ich weiß das praktisch nicht. Ich habe diesen Artikel gelesen und am Ende des zweiten Absatzes das Wort "Ort" gelesen. Dieses Wort wird missbraucht, Sie haben gemeint: Ort, Ort, Ort, Ort. Das Wort location bedeutet etwas anderes, da die RAE "http://dle.rae.es/?id=NXeOXqS" sagt.