linux – Raspberry pi中的Crontab不会运行非常简单的脚本

我是 Linux的新手,我在RaspBerry Pi中一直在努力解决这个问题并且没有成功.

首先,我在/home/myfile.sh中编写了一个简单的脚本,如下所示:

#!/bin/bash
clear
echo "hi"

然后我做了sudo chmod 755 /home/myfile.sh来授予权限.

最后我使用crontab -e修改了crontab:

# some comments ...
* * * * * /home/myfile.sh

问题:

当我手动运行脚本时它工作正常但是当我在我的crontab中设置上面的行时,什么也没发生.我究竟做错了什么?

解决方法

尝试将输出重定向到这样的文件

* * * * * /home/myfile.sh > output_file.txt

你会看到它正在发挥作用.

Cron作业不会输出到您正在使用的同一终端.

编辑

如果您使用crontab -e来安排作业,则使用的是用户特定的crontab.因此,您只能写入该用户的主目录(或他有权访问的其他目录).所以如果你修改你的cron作业:

* * * * * /home/myfile.sh > /home/<username>/output_file.txt

您将看到输出已写入用户主目录下的该文件.

如果要写入其他目录,我建议您在/ etc / crontab中使用系统范围的crontab

顺便说一句,您可能希望为cron作业启用日志记录以跟踪问题.您需要编辑/etc/rsyslog.conf或/etc/rsyslog.d/50-default.conf文件,并确保取消注释以下行,如果缺少则添加它:

cron.*                         /var/log/cron.log

然后重启rsyslog和cron:

sudo service rsyslog restart
sudo service cron restart

现在你看看你的命令是否由cron运行.

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...