如何使用脚本自动将文件发送到FTP服务器?


9

我需要制作一个脚本,将特定的日志文件/var/log/放入其中,并将其放在我可以轻松获取的位置(很可能是我可以访问的Web或FTP服务器)。我认为我不想使用邮件发送。Webdav可能是一个选择。它只需要工作而无需任何用户交互,并且非常快捷,轻松。有什么建议么?(基本上不需要密码)

Answers:


12
  • 登录文件/var/log通常是世界可读的,不需要密码即可访问。
  • 如果您已经拥有FTP服务器-也可能是Web服务器的后端-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 --helpman wput了解更多选项。

注意:如上例所示,以明文形式输入密码通常是非常不安全的;我强烈建议在服务器上创建一个受限制的FTP帐户,该帐户仅允许上传到您创建的用于下载/查看日志的特殊目录。


嗨,非常感谢,这正是我所需要的,我知道这是一个旧线程,但是我在目录方面遇到了问题。当我在远程服务器上使用wput时,它总是创建目录树到文件目的地,是否可以仅复制文件而不在远程上创建整个目录树?
AleksandarĐorđević17年

0

您可以使用的另一个有用且安全的scp命令是使用ssh来回复制文件的命令。

要使用此功能,您可以使用seahorse创建ssh密钥对,并将密钥的公共部分复制到〜/ .ssh /。您不应该使用密码来保护用于此目的的密码,因为您不想登录使用它。您可能只应为此脚本使用为此使用的密码对。您可以使用scp -i identity选项来选择它。

私钥代替明文密码。

我假设您可以根据需要在crontab中放置脚本的调用。

使用izx的有用方法,您需要注意保护脚本的放置位置,以保护远程计算机的密码“ salty”不被他人窥视。使用这种方法,您将必须同样注意保护密钥对的私有部分,因为它没有密码保护。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.