cron的作用:cron可以用来周期性地自动执行一些命令。

cron的实现:cron有很多实现版本,例如:cronie, dcron, fcron, bcron, vixie-cron,我安装的是 cronie

安装的方法:

pacman -S cronie

安装完成后,cronie 在系统中增加的文件:

cronie /etc/
cronie /etc/anacrontab
cronie /etc/cron.d/
cronie /etc/cron.d/0hourly
cronie /etc/cron.daily/
cronie /etc/cron.deny
cronie /etc/cron.hourly/
cronie /etc/cron.hourly/0anacron
cronie /etc/cron.monthly/
cronie /etc/cron.weekly/
cronie /etc/pam.d/
cronie /etc/pam.d/crond
cronie /usr/
cronie /usr/bin/
cronie /usr/bin/anacron
cronie /usr/bin/crond
cronie /usr/bin/crontab
cronie /usr/lib/
cronie /usr/lib/systemd/
cronie /usr/lib/systemd/system/
cronie /usr/lib/systemd/system/cronie.service
cronie /usr/share/
cronie /usr/share/licenses/
cronie /usr/share/licenses/cronie/
cronie /usr/share/licenses/cronie/COPYING
cronie /usr/share/man/
cronie /usr/share/man/man1/
cronie /usr/share/man/man1/crontab..gz
cronie /usr/share/man/man5/
cronie /usr/share/man/man5/anacrontab..gz
cronie /usr/share/man/man5/crontab..gz
cronie /usr/share/man/man8/
cronie /usr/share/man/man8/anacron..gz
cronie /usr/share/man/man8/cron..gz
cronie /usr/share/man/man8/crond..gz
cronie /var/
cronie /var/spool/
cronie /var/spool/anacron/
cronie /var/spool/cron/

从这个文件列表中,可以看到有三个可执行文件 /bin/anacron,/bin/crond,/bin/crontab

其中anacron和crond都能够做到以daemon的方式运行在后台,并且周期性地执行配置文件中指定的命令。至于二者的区别,请自行阅读各自的manual。

通过查看 /usr/lib/systemd/system/cronie.service ,发现里面用到的是 crond。至于crond会读取哪些配置文件,请自行阅读crond的manual。

第三个可执行文件 crontab 是用于维护配置文件的。

crond通过两种方式监测配置文件的改动,一种是使用inotify的方式,另一种是每分钟检查配置文件的modtime,这两种方式都不需要你在修改了配置文件之后手动重启 crond。

archlinux的wiki上说不应该直接编辑配置文件,应该使用crontab这个命令进行操作。

基本的crontab命令:

#列出当前用户的配置文件
crontab -l #编辑当前用户的配置文件
crontab -e #删除当前用户的配置文件
crontab -r

crontab 的详细用法可以参考 man crontab

经过测试发现,当编辑完当前用户的配置文件然后保存之后,实际上是在 /var/spool/cron/ 这个目录下多了一个以用户名作为文件名的文件。

有一个地方挺奇怪的,/var/spool/cron/ 这个目录的权限是 755,属于root用户和root组,我用非root的用户执行 crontab 命令竟然能在改目录下增删文件。

20160412 加:不奇怪了,原因找到了,是因为 /bin/crontab 拥有 setuid 的权限,而/bin/crontab 的所有者是 root,所以当我以非root用户执行 crontab 命令的时候,我就临时成为了root。

我们在这里不使用 crontab 来修改 /var/spool/cron/ 中的文件,我们直接将配置文件放到 /etc/cron.d/ 这个目录中。

来一个小示例:

sudo vim /etc/cron.d/mycrontab

文件的内容填入(该配置的意思是 每分钟以 root 用户的身份执行一次 touch /tmp/testfile 这条命令):

* * * * * root touch /tmp/testfile

然后保存。

启动 crond 的 daemon:

sudo systemctl start conie.service

看看是不是 /tmp/testfile 这个文件被建立了,然后访问时间每分钟都改变。

对于配置文件的具体应该如何编写,可以查看 man 5 crontab。

为archlinux配置cron的更多相关文章

  1. CentOS6.5配置 cron

    CentOS6.5配置 cron 任务 - mengjiaoduan的博客 - CSDN博客https://blog.csdn.net/mengjiaoduan/article/details/649 ...

  2. Springboot自带定时任务实现动态配置Cron参数

    同学们,我今天分享一下SpringBoot动态配置Cron参数.场景是这样子的:后台管理界面对定时任务进行管理,可动态修改执行时间,然后保存入库,每次任务执行前从库里查询时间,以达到动态修改Cron参 ...

  3. Archlinux配置fcitx5

    fcitx5--Linux中最好用的中文输入法 ArchLinux配置fcitx5 输入法 本文基于archlinux + dwm.其他的桌面环境以及窗口管理器,配置选项差不多. 安装基础包 fcit ...

  4. archlinux配置答疑

    Q: chinese can not appear in my firefox and terminal rightly A: pacman -S wqy-microhei Q: install pi ...

  5. Archlinux配置~小米笔记本Air 13.3英寸版本

    1 .zsh echo $ SHELL \\查看当前正在使用shell: pacman -S zsh zsh-syntax-highlighting git wget wget https://raw ...

  6. 配置cron定时任务

    题:配置一个 cron 任务用户 natasha 必须配置一个定时执行任务,每天在本地时间 14:23 时执行命令* /bin/echo hiya 答: # 方法1 # su - natasha # ...

  7. Springboot定时任务实现动态配置Cron参数(从外部数据库获取)

    https://blog.csdn.net/qq_35992900/article/details/80429245 我们主要讲解它的动态配置使用方法. 在刚开始使用的时候,我们更改一个任务的执行时间 ...

  8. Mac 配置cron

    请参考:https://www.cnblogs.com/EasonJim/p/7819635.html 查看 crontab 是否启动 sudo launchctl list | grep cron ...

  9. (转载)Linux定时任务cron配置

    (转载)http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务 ...

随机推荐

  1. Koala编译less

    下载地址:http://koala-app.com/index-zh.html 用Koala可以用来编译less,软件也是简单明了,平时开着其他软件编辑less,只要打开Koala,勾选“自动编译”后 ...

  2. Android Service和Thread的关系

    不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会有点让你吃惊,因为Service和Th ...

  3. Android shape的使用(圆角矩形)

    <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...

  4. [BS-10] 统一设置app所有页面的“返回”按钮样式

    统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...

  5. vim中.swp文件处理

    参考: http://blog.csdn.net/lingdxuyan/article/details/4993868 http://www.cnblogs.com/softwaretesting/a ...

  6. python故障查找:超时未设置

    最近一台基于python的应用服务总是出现问题.需求是用户可以在页面上提交批量处理任务,后台把这些任务入到一个Queue里排队处理,然后通过一个线程专门处理.现在总是偶尔出现假死状态,任务处理中断执行 ...

  7. javascript设计模式学习之三—闭包和高阶函数

    一.闭包 闭包某种程度上就是函数的内部函数,可以引用外部函数的局部变量.当外部函数退出后,如果内部函数依旧能被访问到,那么内部函数所引用的外部函数的局部变量就也没有消失,该局部变量的生存周期就被延续. ...

  8. Function.prototype.bind接口浅析

    本文大部分内容翻译自 MDN内容, 翻译内容经过自己的理解. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glo ...

  9. Install .NET Framework 4.5.2 on a Cloud Service Role

    October Guest OS rollout is starting today October 15 2015, and projected to be released on November ...

  10. TNS-01189: The listener could not authenticate the user

    查看监听时,发现监听状态异常,报TNS-01189: The listener could not authenticate the user错误 $ lsnrctl stat LSNRCTL - P ...