当前位置: 技术问答>linux和unix
crontab scp 无法执行
来源: 互联网 发布时间:2016-11-29
本文导语: 我的crontab语句: 50 18 * * * scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path 其中我直接在命令行中运行 scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path 是可以scp过去的,可见命令部分并没有问题。而如...
我的crontab语句:
50 18 * * * scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path
其中我直接在命令行中运行
scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path
是可以scp过去的,可见命令部分并没有问题。而如果我把上面的命令改成其它的,比如
date >> testfile.txt
也是可以运行的,可见crontab服务是正在运行的。但不知道为什么两个合起来就无法运行了。。。
求高手帮忙解答,谢谢啊!
50 18 * * * scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path
其中我直接在命令行中运行
scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path
是可以scp过去的,可见命令部分并没有问题。而如果我把上面的命令改成其它的,比如
date >> testfile.txt
也是可以运行的,可见crontab服务是正在运行的。但不知道为什么两个合起来就无法运行了。。。
求高手帮忙解答,谢谢啊!
|
crontab前面直接设置环境的。
crontab和shell的环境变量可不同,可以看man嘛。
签名:挣分下载,lol
crontab和shell的环境变量可不同,可以看man嘛。
签名:挣分下载,lol
|
file/path 加上全路径 /xxx/yyy/file/path试试
|
没有路径
PATH=/usr/local/bin:/bin:/usr/bin
加上试试
PATH=/usr/local/bin:/bin:/usr/bin
加上试试
|
这是你写的命令
scp -i /home/user/.ssh/key file/path distuser@hostname:/dist/path
这个命令里/home/user/.ssh/key和/dist/path你都写的全路径啊
file/path为什么不写全路径呢?
比如file/path在/home/user/下 那么你就写成/home/user/file/path啊
我的意思就是这个意思!
|
如果你语句没错误,请检查下/etc/init.d/vixie-cron是否开启或者重启下。
|
你可以将你的scp任务写到一个shell脚本里,然后在脚本第一行加上 #!/bin/sh ,然后在crontab中加上这个shell脚本,在加的时候这样写:
50 18 * * * sh xxx.sh
或者
50 18 * * * ksh xxx.sh
这样应该就解决了crontab环境变量的问题。
50 18 * * * sh xxx.sh
或者
50 18 * * * ksh xxx.sh
这样应该就解决了crontab环境变量的问题。
|
我也想不出啥毛病了 我也经常用crontab+scp备份的 没出现过你所说的问题
contab一般不执行的原因99%有2种
1.环境变量的原因
2.使用了相对路径的原因
contab一般不执行的原因99%有2种
1.环境变量的原因
2.使用了相对路径的原因
|
你看看/var/log/cron日志里 看有啥错误
|
改成全路径,然后修改时间测试下试试……