Як автоматизувати надсилання файлу на FTP-сервер зі скриптом?


9

Мені потрібно взяти скрипт, який містить певний файл журналу /var/log/і розміщує його кудись там, де я його легко можу отримати (швидше за все, веб-або FTP-сервер, до якого я маю доступ). Я не думаю, що я хочу використовувати пошту, щоб надіслати її. Webdav може бути варіантом. Просто потрібно працювати без взаємодії з користувачем, і бути досить швидким і безболісним. Будь-які пропозиції? (в основному не потрібен пароль)

Відповіді:


12
  • Файли входу /var/logзазвичай доступні для читання у світі та не потребують доступу до пароля.
  • Якщо у вас вже є FTP-сервер - це може бути і резервним веб-сервером - найпростішим варіантом IMO є використання wputутиліти.
    • Встановіть його за sudo apt-get install wputпотреби.
    • Синтаксис:
      wput [параметри] [файл] ... [URL] ...
    • де URL має форму:
      ftp: // [ім'я користувача [: пароль] @] ім'я хоста [: порт] [/ [шлях /] [файл]]
  • Приклад:

    wput / var / log / syslog ftp: // jack: salty@ftp.website.com/www/mylogs/ 
    
  • Використовуйте -uопцію, щоб змусити завантажувати, коли файл призначення вже існує.

  • Перегляньте wput --helpабо man wputще багато інших варіантів.

Примітка. Введення пароля в простому тексті, як у наведених вище прикладах, вкрай небезпечно; Настійно рекомендую створити на сервері обмежений обліковий запис FTP, який дозволяє завантажувати лише в спеціальний каталог, який ви створюєте для завантаження / перегляду журналів.


Привіт, дуже дякую за це, це саме те, що мені потрібно, я знаю, що це стара тема, але у мене виникають проблеми з каталогами. Коли я використовую wput на віддаленому сервері, він завжди створює дерево каталогів для призначення місця призначення, чи можна просто копіювати файли, не створюючи ціле дерево каталогів на віддаленому?
Aleksandar Đorđević

0

Ще однією корисною та безпечною командою, яку ви можете використовувати, буде scpкоманда, яка використовує ssh для копіювання файлів туди-сюди.

Для цього можна скористатися морським конем, щоб створити пару ключів ssh і скопіювати відкриту частину ключа в ~ / .ssh /. Ви не повинні захищати пароль, який ви використовуєте для цього паролем, оскільки ви не хочете увійти, щоб ним користуватися. Напевно, ви повинні використовувати лише пару паролів, яку ви використовуєте для цього для цього сценарію. Для його вибору використовуєте опцію ідентичності scp -i.

Приватний ключ займає місце простого тексту.

Я припускаю, що ви можете помістити виклик сценарію у свій crontab.

З корисним підходом izx вам потрібно бути обережним, щоб захистити місце розміщення сценарію, щоб захистити пароль "солоний" для віддаленого комп'ютера від сторонніх очей. При такому підході вам доведеться так само подбати про захист приватної частини пари ключів, оскільки вона не захищена паролем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.