Come automatizzare l'invio di un file a un server FTP con uno script?


9

Ho bisogno di creare uno script che raccolga un particolare file di registro /var/log/e lo metta da qualche parte dove posso facilmente ottenerlo (molto probabilmente un server Web o FTP a cui ho accesso). Non credo di voler usare la posta per inviarla. Webdav potrebbe essere un'opzione. Deve solo funzionare senza alcuna interazione da parte dell'utente ed essere piuttosto veloce e indolore. Eventuali suggerimenti? (nessuna password necessaria, in pratica)

Risposte:


12
  • I file di accesso /var/logsono di solito leggibili in tutto il mondo e non richiedono password per accedere.
  • Se disponi già di un server FTP - potrebbe essere anche un back-end per un server Web - l'opzione IMO più semplice è utilizzare l' wpututilità.
    • Installalo con sudo apt-get install wputse necessario.
    • La sintassi è:
      wput [opzioni] [file] ... [url] ...
    • dove l'URL è nel formato:
      ftp: // [nome utente [: password] @] hostname [: port] [/ [percorso /] [file]]
  • Esempio:

    wput / var / log / syslog ftp: // jack: salty@ftp.website.com/www/mylogs/ 
    
  • Utilizzare l' -uopzione per forzare un caricamento quando il file di destinazione esiste già.

  • Vedi wput --helpo man wputper molte altre opzioni.

Nota: mettere la password in chiaro come negli esempi sopra è estremamente insicuro in generale; Consiglio vivamente di creare un account FTP limitato sul server che consenta solo di caricare in una directory speciale creata per scaricare / visualizzare i registri.


Ciao, grazie mille per questo, questo è esattamente ciò di cui ho bisogno, so che è un vecchio thread ma ho problemi con le directory. Quando utilizzo wput sul server remoto crea sempre l'albero delle directory nella destinazione dei file, è possibile solo copiare i file senza creare l'intero albero delle directory sul telecomando?
Aleksandar Đorđević l'

0

Un altro comando utile e sicuro che puoi usare sarebbe il scpcomando che usa ssh per copiare i file avanti e indietro.

Per usarlo puoi usare cavalluccio marino per creare una coppia di chiavi ssh e copiare la parte pubblica della chiave in ~ / .ssh /. Non dovresti proteggere la password che usi per questo con una password poiché non vuoi accedere per usarla. Probabilmente dovresti usare solo la coppia di password che usi per questo per questo script. Si utilizza l'opzione scp -i identity per selezionarla.

La chiave privata sostituisce una password in chiaro.

Presumo che tu possa inserire un'invocazione dello script nel tuo crontab, se lo desideri.

Con l'approccio utile di izx è necessario fare attenzione a proteggere dove si posiziona lo script per proteggere la password "salata" per il computer remoto da occhi indiscreti. Con questo approccio dovrai prestare la stessa attenzione a proteggere la parte privata della coppia di chiavi poiché non è protetta da password.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.