Bagaimana cara mengotomatiskan pengiriman file ke server FTP dengan skrip?

9

Saya perlu membuat skrip yang mengambil file log tertentu /var/log/dan meletakkannya di suatu tempat di mana saya dapat dengan mudah mendapatkannya (kemungkinan besar web atau server FTP yang dapat saya akses). Saya rasa saya tidak ingin menggunakan surat untuk mengirimnya. Webdav mungkin menjadi opsi. Itu hanya perlu bekerja tanpa interaksi pengguna, dan cukup cepat dan tidak menyakitkan. Ada saran? (pada dasarnya tidak diperlukan kata sandi)

CaptSaltyJack
sumber

Jawaban:

12
  • File log in /var/logbiasanya dapat dibaca dunia dan tidak memerlukan kata sandi untuk mengakses.
  • Jika Anda sudah memiliki server FTP - bisa menjadi back-end ke server web juga - opsi paling sederhana IMO adalah menggunakan wpututilitas.
    • Instal dengan sudo apt-get install wputjika perlu.
    • Sintaksnya adalah:
      wput [opsi] [file] ... [url] ...
    • di mana URL berada dalam formulir:
      ftp: // [nama pengguna [: kata sandi] @] nama host [: port] [/ [path /] [file]]
  • Contoh:

    wput / var / log / syslog ftp: // jack: [email protected]/www/mylogs/ 
    
  • Gunakan -uopsi untuk memaksa unggahan saat file tujuan sudah ada.

  • Lihat wput --helpatau man wputuntuk banyak opsi lainnya.

Catatan: Menempatkan kata sandi dalam plaintext seperti pada contoh di atas sangat tidak aman secara umum; Saya sangat menyarankan untuk membuat akun FTP terbatas di server yang hanya memungkinkan unggahan ke direktori khusus yang Anda buat untuk mengunduh / melihat log.

ish
sumber
Hai, Terima kasih banyak untuk ini, ini persis apa yang saya butuhkan, saya tahu ini adalah utas lama tetapi saya mengalami masalah dengan direktori. Ketika saya menggunakan wput di server jauh selalu membuat pohon direktori ke tujuan file, apakah mungkin untuk menyalin file tanpa membuat seluruh pohon direktori pada jarak jauh?
Aleksandar Đorđević
0

Perintah lain yang berguna dan aman yang dapat Anda gunakan adalah scpperintah yang menggunakan ssh untuk menyalin file ke sana kemari.

Untuk menggunakan ini, Anda dapat menggunakan kuda laut untuk membuat pasangan kunci ssh dan menyalin bagian publik dari kunci tersebut ke ~ / .ssh /. Anda tidak boleh melindungi kata sandi yang Anda gunakan untuk ini dengan kata sandi karena Anda tidak ingin masuk untuk menggunakannya. Anda mungkin hanya menggunakan pasangan kata sandi yang Anda gunakan untuk skrip ini. Anda menggunakan opsi scp -i identitas untuk memilihnya.

Kunci pribadi menggantikan kata sandi plaintext.

Saya berasumsi Anda dapat menempatkan permintaan naskah di crontab Anda jika diinginkan.

Dengan pendekatan izx yang membantu Anda harus berhati-hati untuk melindungi tempat Anda meletakkan skrip untuk melindungi kata sandi "asin" untuk komputer jarak jauh dari mencongkel mata. Dengan pendekatan ini Anda harus berhati-hati untuk melindungi bagian pribadi dari pasangan kunci karena tidak dilindungi kata sandi.

John S Gruber
sumber