使用 SCP 获取文件的 Shell 脚本

使用 SCP 获取文件的 Shell 脚本

我想构建一个每天运行的 shell 脚本并使用 SCP 命令从另一台服务器获取文件。

问题是,当我在终端输入此命令时,它会要求我输入密码。

a) shell脚本如何输入密码?

b) 将密码存储在 shell 脚本中真的是个好主意吗?

命令示例:

scp -r myUser@myServer:/local/java/log/archive/2018/02/16/log.2018-02-16.gz ~/Temp/

答案1

第一步:设置无密码 SSH 访问(通过 ssh-keygen):

运行ssh-keygen(最终您将得到 2 个文件:id_rsa 和 id_rsa.pub,一个是您要与世界共享的 .pub 公钥,另一个是您的私钥)。然后运行ssh-copy-id myUser@myServer。只需在提示时输入您的密码,您现在就可以使用 SSH,而无需输入 myUser@myServer 的密码。

第二步:自动化每日 scp:

输入crontab -e,选择您喜欢的编辑器并在文件底部添加一行:0 0 * * * scp -r myUser@myServer:/local/java/log/archive/2018/02/16/log.2018-02-16.gz ~/Temp/保存...瞧!(您可以使用@daily scp (...)crontab 条目,它基本上与 0 0 * * * 相同)

参见 Anacron (使用 crontab 进行作业调度,如果在此期间计算机关闭,会发生什么?) 用于在计算机宕机时管理 Cron 任务。

相关内容