• 为archlinux配置cron


    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.1.gz
    cronie /usr/share/man/man5/
    cronie /usr/share/man/man5/anacrontab.5.gz
    cronie /usr/share/man/man5/crontab.5.gz
    cronie /usr/share/man/man8/
    cronie /usr/share/man/man8/anacron.8.gz
    cronie /usr/share/man/man8/cron.8.gz
    cronie /usr/share/man/man8/crond.8.gz
    cronie /var/
    cronie /var/spool/
    cronie /var/spool/anacron/
    cronie /var/spool/cron/
    View Code

    从这个文件列表中,可以看到有三个可执行文件 /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。

  • 相关阅读:
    第四十七课、父子间的冲突
    第四十六课、继承中的构造与析构
    第四十五课、不同的继承方式
    第四十四课、继承中的访问级别
    第四十三课、继承的概念和意义
    第四十二课、类型转换函数(下)
    第四十一课、类型转化构造函数(上)
    暴力大法好
    HideProcess
    Hduacm—5497
  • 原文地址:https://www.cnblogs.com/vanwoos/p/5333013.html
Copyright © 2020-2023  润新知