最近遇到crontab定时任务scp、ssh命令不执行,系统是centos,登录系统手工执行脚本是可以的,其它如crontab配置文件没有对用户做限制,脚本权限也赋予执行,刚开始以为是环境变量的问题导致的,后来在脚本里添加了环境变量还是不行。最后才发现原来是密钥的问题。

 

脚本如下:

#!/bin/bash
cd /data/scjz/server_list/
cat all.list|/bin/egrep '(vn|zing)' > vn_all.list
/usr/bin/scp -P 6122 vn_all.list root@192.168.1.100:/root/

ssh -p 6122 root@192.168.1.100 "chown virtual:virtual /root/vn_all.list"

 

解决办法:

       在192.168.1.100这台机添加执行脚本服务器上的公钥就行了。