有人能告诉我如何在 cron 中将文件从一台服务器复制到另一台服务器吗?我知道,scp
但我们不知道如何在 cron 中使用它,因为我们需要传递密码。
已编辑
我找到了这个链接期望输入用户名和密码的脚本
有人能帮我这样做吗?我对 Ubuntu 非常陌生,
答案1
您有两个主要选择:
不好的做法:使用类似
pscp
允许你发送密码的东西。来自man pscp
:-pw password Set remote password to password. CAUTION: this will likely make the password visible to other users of the local machine (via commands such as `w').
这将要求您在 crontab 文件中输入密码,这是一个简单的文本文件,这不是一个好主意。在我的 Debian 0.63 上,密码实际上在and &co
pscp
的输出中被屏蔽了,但根据上面引用的手册页,您不能假设情况总是如此。w
ps
更好的一个:设置无密码 ssh对于需要运行该命令的用户
scp
。如果您不想为普通用户执行此操作,只需创建一个新用户并以该用户的身份运行 crontab。
或者,您可以反过来设置。不要让机器 A 上的用户从机器 B 复制文件,而是让机器 B 上的用户将文件复制到机器 A。
是的,您可以使用脚本执行此expect
操作,但如果您想在脚本中包含密码,也会出现相同的安全问题。