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. Linux 性能工具 - sar学习

    简介 sar是一款在linux下的性能工具,可以观察到CPU,内存,IO,运行队列,每秒上下文切换等信息. 软件工具安装 #Ubuntu sudo apt-get install sysstat # ...

  2. Python PIL ImageDraw 和ImageFont模块学习

    ImageDraw 新建一个空白图片为本文作示例,新建空白文件的方法 见Image模块,Image.new: import Image blank = Image.new("RGB" ...

  3. sqlserver 一个排序问题

    当 应用select * into a from b order by b1,b2语句时,试图使a表中的物理顺序改变,是 不能够实现的 select * into 同时复制了b表的物理结构,所以a表中 ...

  4. glusterfs rebalance

    # gluster volume rebalance VOLNAME start # gluster volume rebalance VOLNAME status # gluster volume ...

  5. Java获取本地IP地址

    import java.net.InetAddress; import java.net.UnknownHostException; public class IpTest { public stat ...

  6. How to Iterate Map

    常用iterate 方法 Map<Integer, String> m = new HashMap<Integer, String>(); for(Map.Entry<I ...

  7. Interview Check If n Is A Perfect Square

    Check if a given number is a perfect square with only addition or substraction operation. eg. 25 ret ...

  8. 北大,awk 命令基础练习

    北大,awk 命令基础练习 Red Hat Enterprise Linux Version 5.3 Get the latest news about the world's Open Source ...

  9. ava获得当前文件路径

    第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...

  10. AutoMappeer自动映射

    AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间.