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

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

我需要编写一个脚本,将特定的日志文件放入/var/log/某个我可以轻松获取的地方(最有可能是我可以访问的 Web 或 FTP 服务器)。我不认为我想使用邮件发送它。Webdav 可能是一个选项。它只需要在没有任何用户交互的情况下工作,并且非常快速和轻松。有什么建议吗?(基本上不需要密码)

答案1

  • 日志文件/var/log通常是所有人都可读的,并且不需要密码即可访问。
  • 如果您已经有 FTP 服务器 -- 也可以作为 Web 服务器的后端 -- 那么在我看来最简单的选择就是使用该wput实用程序。
    • 如果需要的话就安装它sudo apt-get install wput
    • 语法是:
      wput [选项] [文件]... [url]...
    • 其中 URL 的格式为:
      ftp://[用户名[:密码]@]主机名[:端口][/[路径/][文件]]
  • 例子:

    输入 /var/log/syslog ftp://jack:[电子邮件保护]/www/mylogs/ 
    
  • 当目标文件已存在时使用该-u选项强制上传。

  • 请参阅wput --helpman wput以了解更多选项。

笔记:像上面的例子那样以纯文本形式输入密码通常极其不安全;我强烈建议在服务器上创建一个受限的 FTP 帐户,该帐户只允许上传到您为下载/查看日志而创建的特殊目录。

答案2

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

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

私钥代替明文密码。

我假设您可以在 crontab 中调用该脚本(如果需要)。

使用 izx 的实用方法时,您需要小心保护放置脚本的位置,以防止远程计算机的密码“salty”被窥探。使用这种方法时,您必须同样小心保护密钥对的私有部分,因为它不受密码保护。

相关内容