<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://wiki.fangc.top/index.php?action=history&amp;feed=atom&amp;title=Cron</id>
	<title>Cron - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.fangc.top/index.php?action=history&amp;feed=atom&amp;title=Cron"/>
	<link rel="alternate" type="text/html" href="https://wiki.fangc.top/index.php?title=Cron&amp;action=history"/>
	<updated>2026-04-21T08:40:56Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.fangc.top/index.php?title=Cron&amp;diff=2001&amp;oldid=prev</id>
		<title>2024年9月5日 (四) 12:13 FC</title>
		<link rel="alternate" type="text/html" href="https://wiki.fangc.top/index.php?title=Cron&amp;diff=2001&amp;oldid=prev"/>
		<updated>2024-09-05T12:13:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Cron（Cron Job）是一个用于在特定时间间隔或指定时间执行任务的Unix/Linux工具。它允许用户在预定的时间自动执行命令或脚本，可以用来实现定期的系统维护、自动化任务、定时备份等。&lt;br /&gt;
&lt;br /&gt;
== 表达式组成 ==&lt;br /&gt;
其实就是一组时间序列，一个由6个空格7个域组成的字符串，排序如下：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;[秒] [分] [时] [日] [月] [周] [年]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!域&lt;br /&gt;
!是否必填&lt;br /&gt;
!值以及范围&lt;br /&gt;
!通配符&lt;br /&gt;
|-&lt;br /&gt;
|秒&lt;br /&gt;
|是&lt;br /&gt;
|0-59&lt;br /&gt;
|, – * /&lt;br /&gt;
|-&lt;br /&gt;
|分&lt;br /&gt;
|是&lt;br /&gt;
|0-59&lt;br /&gt;
|, – * /&lt;br /&gt;
|-&lt;br /&gt;
|时&lt;br /&gt;
|是&lt;br /&gt;
|0-23&lt;br /&gt;
|, – * /&lt;br /&gt;
|-&lt;br /&gt;
|日&lt;br /&gt;
|是&lt;br /&gt;
|1-31&lt;br /&gt;
|, – * ? / L W&lt;br /&gt;
|-&lt;br /&gt;
|月&lt;br /&gt;
|是&lt;br /&gt;
|1-12 或 JAN-DEC&lt;br /&gt;
|, – * /&lt;br /&gt;
|-&lt;br /&gt;
|周&lt;br /&gt;
|是&lt;br /&gt;
|1-7 或 SUN-SAT&lt;br /&gt;
|, – * ? / L #&lt;br /&gt;
|-&lt;br /&gt;
|年&lt;br /&gt;
|否&lt;br /&gt;
|1970-2099&lt;br /&gt;
|, – * /&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 通配符的含义： ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;：表示在两个及以上的时间点中都执行。如在月中的值为&amp;lt;code&amp;gt;1,3&amp;lt;/code&amp;gt;，则表示1月和3月都触发事件&lt;br /&gt;
* &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;：表示匹配该域任意值，可解读为 “每”，如小时的字段为&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;时，表示每一小时都触发事件&lt;br /&gt;
* &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;：表示不指定值，用于日期和星期字段之间进行&amp;lt;code&amp;gt;互斥&amp;lt;/code&amp;gt;。通常在日期和星期字段中的一个指定值，另外一个用&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的6号触发一个操作，但不关心是周几，我们可以这么设置 &amp;lt;code&amp;gt;0 0 0 6 * ?&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;：表示范围，一个连续触发的区间。如：时的值为&amp;lt;code&amp;gt;6-8&amp;lt;/code&amp;gt;，则表示6-8小时中的每个小时都触发事件。&lt;br /&gt;
* &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;：表示间隔时间触发事件（开始时间/时间间隔）。其中第一部分是起始值，除了秒以外都会降低一个单位，比如在 “秒” 上定义 &amp;lt;code&amp;gt;5/10&amp;lt;/code&amp;gt; 表示从 第 5 秒开始 每 10 秒执行一次，而在 “分” 上则表示从 第 5 秒开始 每 10 分钟执行一次。&lt;br /&gt;
* &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;：表示该月第n个星期x(x#n)，仅用星期域。如：星期：&amp;lt;code&amp;gt;6#3&amp;lt;/code&amp;gt;，表示该月的第三个星期五。&lt;br /&gt;
* &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;：表示LAST 最后（最后一天或最后一个星期几）；仅出现在日和星期的域中。用在日则表示该月的最后一天，用在星期则表示该月的最后一个星期X。如：星期域上的值为5L，则表示该月最后一个星期的星期四。在使用&amp;lt;code&amp;gt;&amp;#039;L&amp;#039;&amp;lt;/code&amp;gt;时，不要指定列表&amp;lt;code&amp;gt;&amp;#039;,&amp;#039;&amp;lt;/code&amp;gt;或范围&amp;lt;code&amp;gt;&amp;#039;-&amp;#039;&amp;lt;/code&amp;gt;，否则易导致出现意料之外的结果。&lt;br /&gt;
* &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;：仅用在日的域中，表示距离当月给定日期最近的工作日（周一到周五）。 如：&amp;lt;code&amp;gt;&amp;quot;4W&amp;quot;&amp;lt;/code&amp;gt;表示距离4号最近的工作日（当月的）触发事件； （1）当4号就是工作日时，则表示当天触发；当4号为周六时，则表示3号（周五）触发； （2）当4号为周日时，则表示在5号（周一）触发； 再如：&amp;lt;code&amp;gt;&amp;quot;1W&amp;quot;&amp;lt;/code&amp;gt;表示距离1号最近的工作日触发事件，但是，该工作日只算当月的。假如当月1号是周六，则”&amp;lt;code&amp;gt;1W&amp;lt;/code&amp;gt;“表示在当月3号（周一）触发事件。就算上个月的最后一天是工作日，也不会触发事件。&lt;br /&gt;
* &amp;lt;code&amp;gt;LW&amp;lt;/code&amp;gt;：&amp;lt;code&amp;gt;‘L’&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;&amp;#039;W&amp;#039;&amp;lt;/code&amp;gt;可以一起组合在日字段使用。表示当月的最后一个工作日触发事件。&lt;br /&gt;
&lt;br /&gt;
=== 举个例子 ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;*/5 * * * * ?&amp;lt;/code&amp;gt; 每隔 5 秒执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 */1 * * * ?&amp;lt;/code&amp;gt; 每隔 1 分钟执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 2 1 * ? *&amp;lt;/code&amp;gt; 每月 1 日的凌晨 2 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * MON-FRI&amp;lt;/code&amp;gt; 周一到周五每天上午 10：15 执行作业&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? 6L 2002-2006&amp;lt;/code&amp;gt; 2002 年至 2006 年的每个月的最后一个星期五上午 10:15 执行作业&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 23 * * ?&amp;lt;/code&amp;gt; 每天 23 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 1 * * ?&amp;lt;/code&amp;gt; 每天凌晨 1 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 1 1 * ?&amp;lt;/code&amp;gt; 每月 1 日凌晨 1 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 23 L * ?&amp;lt;/code&amp;gt; 每月最后一天 23 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 1 ? * L&amp;lt;/code&amp;gt; 每周星期天凌晨 1 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 26,29,33 * * * ?&amp;lt;/code&amp;gt; 在 26 分、29 分、33 分执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 0,13,18,21 * * ?&amp;lt;/code&amp;gt; 每天的 0 点、13 点、18 点、21 点都执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 10,14,16 * * ?&amp;lt;/code&amp;gt; 每天上午 10 点，下午 2 点，4 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0/30 9-17 * * ?&amp;lt;/code&amp;gt; 朝九晚五工作时间内每半小时执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 12 ? * WED&amp;lt;/code&amp;gt; 每个星期三中午 12 点执行一次&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0 12 * * ?&amp;lt;/code&amp;gt; 每天中午 12 点触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * *&amp;lt;/code&amp;gt; 每天上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 * * ?&amp;lt;/code&amp;gt; 每天上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 * * ? *&amp;lt;/code&amp;gt; 每天上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 * * ? 2005&amp;lt;/code&amp;gt; 2005 年的每天上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 * 14 * * ?&amp;lt;/code&amp;gt; 每天下午 2 点到 2:59 期间的每 1 分钟触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0/5 14 * * ?&amp;lt;/code&amp;gt; 每天下午 2 点到 2:55 期间的每 5 分钟触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0/5 14,18 * * ?&amp;lt;/code&amp;gt; 每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 0-5 14 * * ?&amp;lt;/code&amp;gt; 每天下午 2 点到 2:05 期间的每 1 分钟触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 10,44 14 ? 3 WED&amp;lt;/code&amp;gt; 每年三月的星期三的下午 2:10 和 2:44 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * MON-FRI&amp;lt;/code&amp;gt; 周一至周五的上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 15 * ?&amp;lt;/code&amp;gt; 每月 15 日上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 L * ?&amp;lt;/code&amp;gt; 每月最后一日的上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * 6L&amp;lt;/code&amp;gt; 每月的最后一个星期五上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * 6L 2002-2005&amp;lt;/code&amp;gt; 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发&lt;br /&gt;
* &amp;lt;code&amp;gt;0 15 10 ? * 6#3&amp;lt;/code&amp;gt; 每月的第三个星期五上午 10:15 触发&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
通过&amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt; 写好配置文件供cron读取然后运行&lt;br /&gt;
&lt;br /&gt;
文件格式为时间加命令的形式如：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0 3 * * * systemctl restart frpc.service&amp;lt;/code&amp;gt;每天凌晨三点重启frpc.service&lt;br /&gt;
[[分类:Linux]]&lt;/div&gt;</summary>
		<author><name>FC</name></author>
	</entry>
</feed>