Cron定时设置在linux和mac中的使用

简介: 文章详细说明了如何在Linux和Mac操作系统中使用Cron进行定时任务的设置,并提供了多个Cron表达式的实例。

python定时任务可以看博客:python中APScheduler的使用详解(python3经典编程案例)

Cron 表达式,是应用在 Unix 和类 Unix 操作系统之中,让脚本、任务定时进行周期性重复的执行。Cron 表达式有差丰富的表达能力,能够适应各种时间表达需求。

一. linux定时设置

# 格式是:分 时 日 月 星期 要运行的命令
# week (0 - 6) = sun,mon,tue,wed,thu,fri,sat
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,...,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
# 编辑修改,centOS 可用 vi /etc/crontab,i 进入编辑状态,:q 退出 :wq 保存退出
sudo nano /etc/crontab
# 监控日志 cron_log 手动创建
*/1 * * * * /bin/date >> /home/cron_log/log_$(date +\%Y-\%m\%d-\%H\%M)
 # 生效一下
crontab /etc/crontab
# 看到的生效的
crontab -l
# 观察执行情况
tail -f /var/log/cron
# 查看最近的 crontab 执行情况
tail -f /var/spool/mail/root

示例:

# 每五分钟
0 5 * * * ?
# 每天 5 点半
0 30 5 * * ?
# 每周五 18:18
0 18 18 ? * FRI *
# 每天 8 点到 23 点,每小时
1 1 8-23 * * ?
# 周一到周五每天 8 点到 22 点,每三小时
1 1 8-22/3 ? * MON-FRI
# 当月 13日 10:30 14:30 17:30
30 10,14,17 13 * *
# 每天 6 到 8 点,每 10 分钟
*/10 6-8 * * *
# At 00:05 on Monday
5 0 * * 1

二. mac设置定时任务

sudo launchctl list | grep cron
# 如无文件,创建一个
sudo touch /etc/crontab
vi /etc/crontab
crontab /etc/crontab
# 状态操作
sudo /usr/sbin/cron start | restart | stop
# 查看已有任务列表
sudo crontab -l
# 编辑任务
sudo crontab -e
# 保存并退款 esc,wq!保存,目测即可生效
# 删除 crontab 文件
sudo crontab -r
# 不执行(如:python)可能要增加 cron 的 Full Disk Access 权限
# System Preferences > Security & Privacy > Privacy > Full Disk Access:
# command+shift+G GOTO: /usr/sbin/cron, 选择 cron
# 可检查是否文件权限问题
cd /Users/gai/Documents/Dev/bin/
chmod +x auto_run.sh

crontab文件格式

分 时 日 月 星期 要运行的命令
* 第1列分钟0~59
* 第2列小时0~23(0表示子夜)
* 第3列日1~31
* 第4列月1~12
* 第5列星期0~7(0和7表示星期天)
* 第6列要运行的命令

注意:Windows 设置定时任务
不支持,可以使用 我的电脑 - 右键‘管理’ - 任务计划程序 进行操作。

相关文章
|
12天前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
64 24
|
8天前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
46 18
|
26天前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
94 25
|
2月前
|
存储 安全 Linux
7个设置/获取接口了解Linux时间管理
本文系统介绍了Linux时间管理中的7个关键设置/获取接口,涵盖时间获取(如`time`、`gettimeofday`、`clock_gettime`)、时间设置(如`stime`、`settimeofday`、`clock_settime`)以及时间转换和格式化等内容。文章详细解析了绝对时间和相对时间的概念,包括GMT、UTC及本地时间的区别,并通过实例测试展示了各接口的使用方法与特性。此外,还探讨了时区设置对时间计算的影响,强调在实际开发中推荐使用UTC作为基准时间以避免时区变化带来的问题。总结部分结合项目经验,提醒开发者注意时间服务的重要性及潜在风险,例如时间跳跃可能引发的应用故障。
96 29
7个设置/获取接口了解Linux时间管理
|
6月前
|
监控 Unix Linux
|
6月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
443 3
|
6月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
240 3
|
6月前
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
451 2
|
6月前
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
164 1
|
6月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
409 3