Στείλτε ένα αρχείο σε ένα FTP με μία μόνο εντολή

Έχουμε ήδη δει πώς να συνδεθείτε σε έναν διακομιστή FTP και να εργαστείτε με αυτόν (ή το περιεχόμενό του) μέσω του τερματικού, δηλαδή χωρίς τη χρήση γραφικών εφαρμογών.

Αυτή τη φορά σας φέρνω ένα συν ή ένα επιπλέον ... επιτρέψτε μου να το εξηγήσω.

Πριν από μερικά χρόνια τα άφησα ένα σενάριο bash που χρησιμοποιείται για τη δημιουργία αντιγράφων ασφαλείας (αποθηκεύει) δεδομένα από διακομιστή. Το σενάριο αντιγράφει μια σειρά φακέλων (όπως / etc /), εξάγει βάσεις δεδομένων, κλπ ... και το συμπιέζει με έναν κωδικό πρόσβασης σε ένα αρχείο .RAR ή .7z (επί του παρόντος χρησιμοποιώ 7z), το μόνο πράγμα που λείπει το σενάριο ήταν να είναι σε θέση να ανεβάσετε μετά από αυτό το συμπιεσμένο αρχείο σε κάποιο διακομιστή FTP, με αυτόν τον τρόπο η αποθήκευση από τον διακομιστή θα αντιγραφόταν σε άλλη τοποθεσία.

Αυτές τις μέρες πήρα το σενάριο για να το βελτιστοποιήσω λίγο, να το βελτιώσω και προφανώς η ανάγκη για το τελευταίο πράγμα που σας ανέφερα ήρθε στο φως, ανεβάζοντας το συμπιεσμένο αρχείο σε ένα εξωτερικό FTP.

Πώς να ανεβάσετε σε ένα FTP με μία εντολή;

Αυτό που χρειαζόμουν ήταν μέσω μίας μόνο εντολής για σύνδεση σε ένα FTP με όνομα χρήστη και κωδικό πρόσβασης, και καλά. ανεβάστε το αρχείο σε συγκεκριμένο φάκελο.

Τερματικές εφαρμογές που μου επιτρέπουν να συνδεθώ σε ένα FTP, να βάλω χρήστη και κωδικό πρόσβασης και να ανεβάσω αρχεία υπάρχουν πολλά, αλλά… που μου επιτρέπουν να το κάνω όλα σε μία γραμμή, με όλες τις παραμέτρους που έχουν ήδη καθοριστεί…. εκεί το ερώτημα.

Μετά την κριτική 4 ή 5… Σκέφτηκα, ε! ... αλλά υπάρχει μπούκλα

Ανεβάστε σε FTP με μπούκλα

Με μπούκλα μπορώ να κάνω έναν άπειρο αριθμό πραγμάτων, ίσως μπορώ να κάνω ό, τι θέλω… και αυτό είναι!

Με την παράμετρο -u μπορώ να καθορίσω το όνομα χρήστη και τον κωδικό πρόσβασης, επίσης με την παράμετρο -T μπορώ να το πω να ανεβάσει ένα αρχείο και τέλος να το πω σε ποιο FTP και σε ποιον φάκελο θέλω να το ανεβάσω, στο τέλος απλά έβαλα την πλήρη διαδρομή, λίγο πολύ σαν αυτό :

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

Αυτό που κάνει είναι να συνδεθείτε στο FTP 192.168.128.2, με τον χρήστη χρήστη και κωδικό πρόσβασης κωδικό πρόσβασης και ανεβάστε στο φάκελο SERVER_BACKUPS το αρχείο με το όνομα δημιουργία αντιγράφων ασφαλείας.7z

Και έτοιμος!

Απλό, σωστά; ...

Φυσικά, αυτό μπορεί να είναι χρήσιμο για εμάς και μόνο η εντολή, ωστόσο, ο καλύτερος τρόπος για να το χρησιμοποιήσετε είναι με ένα σενάριο όπως ... αυτό που ανέφερα προηγουμένως

Και τι γίνεται με αυτό το σενάριο που αναφέρεται;

Πραγματοποιώ βελτιώσεις στο σενάριο, ενσωματώνοντας ειδικά ορισμένα αιτήματα ή προτάσεις από χρήστες.

  • Το πρώτο πράγμα που ήθελα να κάνω ήταν ακριβώς αυτό που μόλις σας εξήγησα, με μία μόνο εντολή να μπορώ να ανεβάσω το αρχείο αποθήκευσης σε ένα FTP.
  • Το άλλο πράγμα που με πρότεινε ένας χρήστης ήταν να στείλω ένα email όταν το αντίγραφο ασφαλείας ήταν έτοιμο, για αυτό μπορώ να χρησιμοποιήσω sendmail ή ένα εξωτερικό σενάριο, Θα χρησιμοποιήσω κατά προτίμηση sendmail. Η λεπτομέρεια της χρήσης sendmail είναι ότι μπορείτε να χρησιμοποιήσετε τον λογαριασμό σας GMail (ή οποιονδήποτε άλλο) για να στείλετε το email, με κρυπτογράφηση ... SSL και οτιδήποτε άλλο.
  • Επίσης, ένας χρήστης πρότεινε επίσης, ως πιο δυναμική μορφή ειδοποίησης, να αποστέλλεται ένα μήνυμα από το IM χρησιμοποιώντας το XMPP του GTalk ή το Hotmail (Live ή κάτι τέτοιο, δεν ξέρω καν τι λέγεται). Θα προσπαθήσω να το κάνω πρώτα με το GTalk, γιατί για το Hotmail θα πρέπει να θυμάμαι ή να υποστηρίζω τον εαυτό μου κάπου για να δημιουργήσω έναν λογαριασμό Hotmail, γιατί με τόση αλλαγή-αλλαγή που έχει η Microsoft, δεν έχει ιδέα πώς είναι.
  • Μια άλλη παραλλαγή του τελευταίου θα ήταν η χρήση ειδοποιήσεων ή μηνυμάτων που αποστέλλονται από το Facebook ή το Twitter. Για το Twitter θα μπορούσατε να χρησιμοποιήσετε Twidge ενώ για το Facebook θα μπορούσατε να χρησιμοποιήσετε fbcmd. Και οι δύο εφαρμογές μου επιτρέπουν να αλληλεπιδρά με αυτά τα κοινωνικά δίκτυα από το τερματικό.
  • Σκέφτομαι επίσης να ελέγξω την ακεραιότητα του sql που εξάγω, αλλά αυτό απαιτεί ήδη λίγο περισσότερο χρόνο :)

ο ftp server

Το τέλος!

Λοιπόν, τίποτα άλλο να προσθέσω ... προς το παρόν, παίρνω πολλά από τα σενάρια μου που έχουν φτιαχτεί στο Bash για να τα βελτιστοποιήσω και να τα βελτιώσω, ελπίζω ότι δεν θα πάρει πολύ χρόνο για να φέρει νέα news

αφορά


8 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   μπαρναράστα dijo

    Υπέροχο έργο,
    Θα το ακολουθήσω με μεγάλο ενδιαφέρον.
    - Οποιαδήποτε ειδοποίηση @ εάν ο διακομιστής είναι εκτός λειτουργίας ή δεν ήταν δυνατή η παράδοση;

    Εξαιρετικά ευχάριστο να διαβάσετε άρθρα από τους λάτρεις του τερματικού / της κονσόλας.

    1σαλου2

    1.    KZKG ^ Γκάρα dijo

      Η ευχαρίστηση είναι δική μου 🙂

      Καλή ιδέα, για να επαληθεύσετε εάν ο διακομιστής FTP είναι συνδεδεμένος και εάν δεν είναι, για να στείλετε ένα email ... Θα το λάβω υπόψη ^ _ ^

  2.   Μωυσής Σεράνο dijo

    Είχα προσαρμόσει το αντίγραφο ασφαλείας σας και προσαρμόστηκα ένα έργο που σας επιτρέπει να ανεβάσετε το τελικό αρχείο στο Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) και στείλτε ένα email στο τέλος με sendmail.

  3.   κυνηγός dijo

    Γκάρα πρέπει να δοκιμάσετε το σωστό εργαλείο για αυτό: lftp

    Υποστηρίζει ακόμη και mirroring, ο συγχρονισμός repos από το ftp είναι ανεκτίμητος.

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

  4.   Jorge dijo

    Πολύ ενδιαφέρον, είναι η ομορφιά αυτού του συστήματος, μπορείτε να επιτύχετε το ίδιο αποτέλεσμα με πολλούς τρόπους. Σας δείχνω τη μέθοδο με την οποία κατάφερα να ανεβάσω αρχεία σε έναν διακομιστή ftp, είναι λίγο ρουστίκ, αλλά εξακολουθεί να λειτουργεί:

    {
    κωδικός πρόσβασης χρήστη χρήστη echo
    κάδος echo
    προτροπή ηχούς
    echo cd / κατάλογος / από / διακομιστή / ftp
    αρχείο echo put
    ηχώ κοντά
    ηχώ αντίο
    } | ftp -n server.ftp

    1.    KZKG ^ Γκάρα dijo

      OOOHHH ενδιαφέρον, δεν ήξερα τι θα μπορούσε να γίνει έτσι 😀
      Σας ευχαριστούμε!

  5.   Sephiroth dijo

    Άλλοι τρόποι, για παράδειγμα με wput:

    wput file_to_upload ftp: // ΧΡΗΣΤΗΣ: PASS@123.123.123.123: 21

    ή για όσους προτιμούν την απλότητα σε ένα σενάριο χρησιμοποιώντας το παλιό telnet:

    ftp -n server_ip << EOF
    ανώνυμος χρήστης test@test.cu
    αποστολή FILE.txt
    έξοδος
    EOF

  6.   Xavier dijo

    Γεια σας, είμαι αρχάριος στο Linux και δεν ξέρω την επιστήμη των υπολογιστών - μόνο σε επίπεδο χρήστη - ή προγραμματισμό ή κάτι τέτοιο, είμαι πρακτικά ανίδεος για αυτό. Διάβασα αυτό το άρθρο και διάβασα στο τέλος της δεύτερης παραγράφου τη λέξη "τοποθεσία". αυτή η λέξη χρησιμοποιείται κατά λάθος, εννοείτε: τοποθεσία, τοποθεσία, τοποθεσία, μέρος. Η λέξη τοποθεσία σημαίνει κάτι άλλο, όπως λέει η RAE "http://dle.rae.es/?id=NXeOXqS".