linux 如何执行例行性任务 提醒管理员每天早上7点上交工作文件

linux 如何执行例行性任务 提醒管理员每天早上7点上交工作文件,第1张

1,你需要安装cron,如果你没有装的话。并将crond作为服务启动。

2,sudo

cat

"0

7

*

*

*

wall

please

submit

your

work

documents"

>

/var/spool/cron/root

或者sudo

crontab

-e,然后输入0

7

*

*

*

wall

please

submit

your

work

documents保存

3,验证一下,执行sudo

crontab

-l

如果能显示0

7

*

*

*

wall

please

submit

your

work

documents说明成功。

这会在每天7天在用户的终端上打出please

submit

your

work

documents的字样。

cron 是 linux 中运行例行性工作的一个服务,守护进程是

crond,是一个用于运行计划任务如系统备份、更新等的守护进程。它适合在那些 7x24 小时不间断运行的机器如服务器上运行的计划任务。

我们可以通过下面的命令去配置定时任务

这个 crontab -e 是针对使用者的 cron 来设计的,如果是系统的例行性任务时,可以通过编辑 /etc/crontab 来实现。cron 这个服务的最低侦测限制是分钟,所以 cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron 里面的数据内容 ,因此,只要你编辑完 /etc/crontab 这个文件,并且将他储存之后,那么 cron 的配置就自动运行了

定时任务的格式如下

Tips:

在 Linux 底下的 crontab 会自动的帮我们每分钟重新读取一次 /etc/crontab 的例行工作事项,但是某些原因或者是其他的 Unix 系统中,由於 crontab 是读到内存当中的,所以在你修改完 /etc/crontab 之后,可能并不会马上运行, 这个时候请重新启动 crond 这个服务,/etc/init.d/crond restart

如果你的服务器并非是 7x24 小时的运行,定时任务的执行时间可能刚好在服务器关闭期间,这个时候可以anacron就派上用场了

anacron 并不是用来取代 crontab 的,anacron 存在的目的就在于我们上头提到的,在处理非 24 小时一直启动的 Linux 系统的 crontab 的运行!所以 anacron 并不能指定何时运行某项任务, 而是以天为单位或者是在启动后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的 crontab 任务,并将该任务运行一遍后,anacron 就会自动停止了

由于 anacron 会以一天、七天、一个月为期去侦测系统未进行的 crontab 任务,因此对于某些特殊的使用环境非常有帮助。 举例来说,如果你的 Linux 主机是放在公司给同事使用的,因为周末假日大家都不在所以也没有必要开启, 因此你的 Linux 是周末都会关机两天的。但是 crontab 大多在每天的凌晨以及周日的早上进行各项任务, 偏偏你又关机了,此时系统很多 crontab 的任务就无法进行。 anacron 刚好可以解决这个问题

那么 anacron 又是怎么知道我们的系统啥时关机的呢?这就得要使用 anacron 读取的时间记录档 (timestamps) 了! anacron 会去分析现在的时间与时间记录档所记载的上次运行 anacron 的时间,两者比较后若发现有差异, 那就是在某些时刻没有进行 crontab !此时 anacron 就会开始运行未进行的 crontab 任务了! 所以 anacron 其实也是透过 crontab 来运行的!因此 anacron 运行的时间通常有两个,一个是系统启动期间运行,一个是写入 crontab 的排程中。 这样才能够在特定时间分析系统未进行的 crontab 工作

anacron 任务被列在 /etc/anacrontab 中,任务可以使用下面的格式

从上面的格式中:

period - 这是任务的频率,以天来指定,或者是@daily 、@weekly、@monthly 代表每天、每周、每月一次。你也可以使用数字:1 - 每天、7 - 每周、30- 每月,或者N - 几天。

delay - 这是在执行一个任务前等待的分钟数。

job-id - 这是写在日志文件中任务的独特名字。

command - 这是要执行的命令或 shell 脚本。

例子:

1 5 cron.daily nice run-parts /etc/cron.daily #每天都执行/etc/cront.daily/目录下的脚本文件,真实的延迟RANDOM_DELAY+delay。这里的延迟是5分钟,加上上面的RANDOM_DELAY,所以实际的延迟时间是5-50之间,开始时间为03-22点,如果机器没关,那么一般就是在03:05-03:50之间执行。nice命令将该进程设置为nice=10,默认为0,即低优先级进程。

如何用PHP作Linux自动执行脚本? 在安装PHP的时候,会产生一个可执行文件,文件名为PHP.将它 copy 到 /usr/local/bin 下.在终端方式执行PHP程序: PHP -q onlinnum.PHP PHP 原本是应用在网页应用的﹐因此它会送出 HTML 的HEADER﹐但是在此我们是要将 PHP 用作 Shell Script﹐-q 就是表示不要送 出 HEADER 的意思.你可以试试看不加上 -q 的显示结果。此时你已经可以在终端方式下执行PHP 代码了。 linux命令:cron daemon 这是一个系统中常驻的服务,功能在于执行例行性的工作,如每天一次或每月一 次检查磁盘。cron daemon 会在每分钟检查一次排定的工作表(crontab),看看是否有要执行的指令,所有的输出会以mail寄给用户。 设置crontab 命令:crontab -e 该命令呼叫vi编辑器来编辑执行的清单。例如 0 0 1,15 * * fsck /home 1 * * * * /home/myhome/printhello 每一行代表一项排定的工作,在指令前为排定的时间,总共有5个栏位,以空格间隔,由左到右依序如下: -------------------------- 分钟 从00到 99 点钟 从0到 24 日从01到31 月从01到12 星期 从01到07,代表星期一到星期日 *号表示每 ,如每天执行,就在第三栏填*号 -------------------------- 所以上例的两项工作是: 每月1号和15号检查/home 磁盘 每小时的第一分执行 /home/myhome/printhello 这个文件 查看crontab:crontab -l 删除crontab:crontab -r 我们就知道该怎么利用PHP和crontab命令作Linux自动执行脚本了。 还需要注意什么问题? 如果PHP中有使用数据库,如oracle等,执行脚本中还需export Oracle的环境设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7919826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存