我需要编写一个脚本,将特定的日志文件放入/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 --help
或man wput
以了解更多选项。
笔记:像上面的例子那样以纯文本形式输入密码通常极其不安全;我强烈建议在服务器上创建一个受限的 FTP 帐户,该帐户只允许上传到您为下载/查看日志而创建的特殊目录。
答案2
您可以使用的另一个有用且安全的命令是scp
使用 ssh 来回复制文件的命令。
要使用此功能,您可以使用 seahorse 创建 ssh 密钥对,并将密钥的公共部分复制到 ~/.ssh/。您不应该用密码保护您为此使用的密码,因为您不想登录使用它。您可能只应该在此脚本中使用您为此使用的密码对。您可以使用 scp -i 身份选项来选择它。
私钥代替明文密码。
我假设您可以在 crontab 中调用该脚本(如果需要)。
使用 izx 的实用方法时,您需要小心保护放置脚本的位置,以防止远程计算机的密码“salty”被窥探。使用这种方法时,您必须同样小心保护密钥对的私有部分,因为它不受密码保护。