cron 作业不会执行

cron 作业不会执行

我正在尝试与我的用户(用户)一起执行我的 cron 作业。

cron 作业安装没有问题,只要我执行它,脚本就可以正常工作。它是可执行的,我有标志bash来表明它是一个 bash 脚本。

crontab -e我通过运行以身份登录来创建脚本user

为了测试目的,我将每分钟运行一次该脚本,但最终将其更改为 10 分钟。

我的 cronjob 应该运行我的脚本,该脚本每 10 分钟 ping 一次 Google 服务器并创建日志,这样我就可以知道我的设备是否曾经失去互联网连接以跟踪问题。我有另一个脚本,它每天移动日志文件,然后用日期记录它,然后这个脚本应该创建另一个日志文件。目前,它没有用这个 cronjob 创建文件,也没有在我运行脚本后更新文件。

我的计划任务

*/1 * * * * bash /home/user/ping_scripts/ping-test.sh

我的脚本

#!/bin/bash

if [ "$(id -u)" != "0" ]; then
  exec sudo "$0" "$@"
fi

if [ ! -e /var/log/ping.log ];then
    touch /var/log/ping.log
fi

ping -q -c5 google.com > /dev/null

if [ $? -eq 0 ];then
     echo -e "[$(date)] \t\t google ping successful" >> /var/log/ping.log
else
    echo -e "[$(date)] \t\t google ping failed" >> /var/log/ping.log
fi

我已阅读了其他一些解决方案,但没有一个能够解决我的错误。

(我无法描述我的帖子有何不同,除了它只是一个问题,一个我在浏览过程中找不到答案的问题 为什么 crontab 脚本不起作用?这是针对 cron 特有的错误,解决方案实际上并不是 cron 独有的。它与我的脚本有更多关系。要获得答案,请参考下面选中的答案。)

答案1

我的问题是我的用户不是sudoer

可以通过将用户添加到/etc/sudoers文件或添加 cron 作业来解决此问题root

sudo su
crontab -e

并将 cron 任务放在那里

答案2

尝试将 cronjob 设置为

* 1 * * * cd /home/user/ping_scripts/ && ./ping-test.sh

并确保该脚本是可执行的

相关内容