anacron 没有按预期工作

anacron 没有按预期工作

尝试使用 cron 或 anacron 安排每天运行一项任务。在论坛中搜索解决方案,但仍然没有成功。

更改 shell=/bin/bash 或 bin/sh 没有任何作用。

我的系统是lubuntu

我的 anacrontab 在 /etc/

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
HOME=/root
LOGNAME=root

# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

10      5       myIp    /home/plutus/myIp/public_ip.sh

anacron -T 没有产生任何错误。

public-ip.sh 是一个 bash 脚本,如果手动启动,它可以完美运行。

$ systemctl status anacron
○ anacron.service - Run anacron jobs
     Loaded: loaded (/lib/systemd/system/anacron.service; enabled; pr>
     Active: inactive (dead) since Wed 2024-01-31 10:11:56 EST; 8min >
   Duration: 11min 13.081s
TriggeredBy: ● anacron.timer
       Docs: man:anacron
             man:anacrontab
    Process: 20359 ExecStart=/usr/sbin/anacron -d -q $ANACRON_ARGS (c>
   Main PID: 20359 (code=exited, status=0/SUCCESS)
        CPU: 1min 7.178s

我究竟做错了什么?

谢谢

编辑:为了测试目的写了一个简单的脚本

#!/bin/bash
echo "hello world" > out.txt

使用 sudo anacron -f 强制运行

没有在应该运行脚本的目录中创建新文件。

/etc 中的 anacrontab 中的行

10    5    test    cd /home/plutus/dir && ./test.sh

答案1

通过将脚本中的相对路径切换为完整路径解决了问题(+1 给@DrMoishe Pippik)。来自

somefile.txt

$HOME/user/somefile.txt

并添加提供环境的完整路径,即

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

相关内容