加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Bash脚本不能用作cron作业

发布时间:2020-12-13 17:01:51 所属栏目:Linux 来源:网络整理
导读:我有以下 shell脚本 $cat capture.sh TIME=$(date +"%H-%M-%d-%m-%y") IP="203.208.198.29" PREFIX=$TIME$IP tshark -f "udp" -i eth0 -w /root/captures/$PREFIX.cap pid=$! sleep 2m kill $pid 当我从shell执行它时运行正常. 但是当我将它添加到cron选项卡
我有以下 shell脚本
$cat capture.sh 
TIME=$(date +"%H-%M-%d-%m-%y") 
IP="203.208.198.29" 
PREFIX=$TIME$IP 
tshark  -f "udp" -i eth0 -w /root/captures/$PREFIX.cap& 
pid=$! 
sleep 2m 
kill $pid

当我从shell执行它时运行正常.

但是当我将它添加到cron选项卡时没有任何反应.

我的crontab条目:
1 * / 2 * 2 3,4,5 sh /root/capture.sh

tail /var/log/cron

显示该命令已执行.

但没有任何反应.我为capture.sh设置了“all”的可执行权限,为/ root / captures目录设置了“all”的写权限.

提前致谢

解决方法

您的PATH变量可能不是您期望它在cron中的变量.

使用脚本中每个可执行文件的完整路径,或在crontab或脚本中手动设置路径.

此外,停止tshark的更好方法是使用内置功能:

-a  <capture autostop condition>
       duration:value Stop writing to a capture file after value seconds
       have elapsed.

另外#2:添加一个shebang线(#!)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读