尝试使用 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