ubuntu下crontab

本文介绍了作者在Ubuntu系统中学习和使用CronTab的过程及心得,包括如何设置不同用户的CronTab任务、解决GUI程序执行问题及常见错误排查。
之前只是知道有crontab这么个东西,并且也是刚刚开始学习linux系统,哈哈

经过一个晚上的摸索有如下心得

1:ubuntu下默认的没有/etc/cron.allow和/etc/cron.deny,注意这个路径的是/etc/下的,网上有很多说是其他的路径,可能是linux发行版本不同的缘故ubuntu的路径就是如此

2:ubuntu下如果上边两个文件都不存在,默认的是所有的用户都可以使用crontab程序,可能有其他的发行版不是如此默认的

3:首先通过设置root的crontab看看它是否能够执行 方法:
su root
然后输入密码,进入到root登录状态
crontab -e 编写root的crontab 内容设置为 
* * * * * echo"root crontab test" >>/tmp/test.txt
观察运行的情况
4:对于非root用户可以执行的命令或者程序,必须有相应的权限,我刚一开始是编写的root的crontab内容是

*/2 * * * * /sbin/reboot

这个crontab的意思是每过两分钟机器重启,是完全可以执行的

但是我放置非root用户user1中的crontab程序中是不能正确执行的,因为user1没有执行/sbin/reboot的权限

即使加上sudo 即sudo /sbin/reboot也不可以

PS:郁闷的狠啊,因为是用的上边的测试方法,刚一开始没有想到是执行权限的问题,我还以为是user1根本就不能执行crontab程序呢,因为当时也不知道可以通过* * * * * echo "test" >>/tmp/test.txt进行测试,就一直在重复的实验是否是cron.allow和cron.deny的问题,搞了好久

5:在确定了root和非root用户都可以执行crontab程序之后,我又测试了root 的crontab,内容如下

* * * * * /sbin/firefox 意思是crontab进行每次进行检测时都会打开firefox的浏览器,因为我用* ** * * /sbin/reboot可以正确执行,而上边的firefox则不会打开,按照道理说会是打开的!
着一个又把我郁闷了好久,最终找到了原因是firefox是个gui的程序,如果要打开gui的窗口时候,需要exportDISPLAY=:0 具体如下:
* * * * * export DISPLAY=:0 &&/sbin/firefox,这样就可以了

同样如果是用户非root,执行gui的程序也需要加上 export DISPLAY=:0才能显示gui的界面,当然用户的路径要用绝对路径(刚开始对路经的问题,研究了好久!),比如你装上了网页编辑工具bluefish,默认的程序的执行的路径是 /usr/bin/bluefish那么在user1中的crontab程序可以这样写
* * * * * export DISPLAY=:0 &&/usr/bin/bluefish 这样crontab就可以运行了

6:有的时候设置了crontab的时候,程序好像是不能执行,最好是重新启动一下cron进行
方法  sudo /etc/init.d/cron stop;/etc/init.d/cronstart 这样就应该没有问题了 sudo service cron restart

7:有时候在你执行crontab-e的时候如果你是第一次执行这个命令,那么它会让你选择编辑器,如果你选择了之后想更改编辑器的时候可以用 sudoupdate-alternatives --config editor 这样再重新选择编辑器,重新再选择就好了

搞了一个通宵,今天做下记录,备忘,好累,不过很兴奋学到了很多东西!
### 如何在Ubuntu系统中安装和配置crontab #### 安装Cron服务 为了使`crontab`能够正常工作,首先需要确保系统的cron守护进程已经正确安装。可以通过包管理器来完成这一操作: ```bash sudo apt-get update && sudo apt-get install cron ``` 这会更新软件源列表并安装cron服务[^2]。 #### 启动与控制Cron服务 一旦安装完毕,可以使用如下命令启动、停止以及重启该服务: - **启动**:`sudo service cron start` - **重启**:`sudo service cron restart` - **停止**:`sudo service cron stop` - **检查状态**:`sudo service cron status` 这些指令可以帮助管理员轻松地管理和监控cron的状态和服务运行情况。 #### 配置定期任务(Crontab) 要创建或修改用户的计划任务文件,可执行以下命令打开编辑界面: ```bash crontab -e ``` 在此模式下,可以根据需求定义不同的调度规则。每一行代表一个单独的任务条目,其格式通常由六个部分组成——分钟(0-59),小时(0-23), 日子(1-31),月份(1-12),星期几(0-7,其中0和7都表示周日),最后是要被执行的具体命令或脚本路径。 例如,在每天凌晨一点钟执行某个扫描脚本,并且每晚午夜刷新ClamAV病毒库的例子可以在XAMPP环境中找到类似的设定方式[^3]: ```bash # 每天凌晨1点执行/opt/lampp/scan.sh 0 1 * * * /opt/lampp/scan.sh # 每日凌晨0点更新病毒库 0 0 * * * /usr/bin/freshclam --quiet ``` 通过这种方式,用户便能够在自己的Ubuntu机器上成功部署自动化作业流程了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值