cron来源于希腊单词chronos(意为“时间”),是linux系统下一个自动执行指定任务的程序。例如,你想在每晚睡觉期间创建某些文件或文件夹的备份,就可以用cron来自动执行。

服务的启动和停止

cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start

/sbin/service crond stop

/sbin/service crond restart

/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。

查看、编辑和删除

cron把命令行保存在crontab(cron table)文件里,这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab(在 /var/spool/cron/ 下)。要查看当前用户的crontab,输入 crontab -l;要编辑crontab,输入 crontab -e;要删除crontab,输入 crontab -r。如当前是root身份,要查看/编辑/删除/某用户的crontab,只需在相应的命令后加上 -u USERNAME(如 crontab -e -u USERNAME)即可。crontab文件的默认编辑器是vi,可以输入 export VISUAL=’editor’ 更改默认编辑器。

cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件,还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置,而编辑 /etc/crontab 文件是对系统级任务的配置。

语法说明

以下是两个cron语句的例子(在 /etc/crontab 文件里)。前者用来晚间备份 /etc 目录,后者运行Analog程序处理服务器的统计信息。

12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc 》 /dev/null 2>&1

52 5 * * * root /usr/local/src/analog-5.32-lh/analog 》 /dev/null 2>&1

以下是cron语句中的字段与字段说明:

字段 说明

1 分钟(0-59)

2 小时(2-24)

3 日期(1-31)

4 月份(1-12;或英文缩写Jan、Feb等)

5 周几(0-6,0为周日;或单词缩写Sun、Mon等)

6 用户名(执行命令时以此用户的身份)

7 要执行的命令(路径)

现在来看第一行:

12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc 》 /dev/null 2>&1

这 条语句将在每天的凌晨3点12分(03:12)运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。》 /dev/null 2>&1 表示把所有标准输出发送到 /dev/null(linux的回收站),把标准错误输出(2)发送到和标准输出(1)同样的地方(即 /dev/null)。运行这行命令将不会产生任何输出。

这条语句可以变得稍微复杂一点:

30 15 13 6 1 * root tar czf /usr/local/backups/daily/etc.tar.gz /etc 》 /dev/null 2>&1

它将在6月13日周一的15:30运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。

以下语句可以达到同样的效果:

30 15 13 Jun Mon * root tar czf /usr/local/backups/daily/etc.tar.gz /etc 》 /dev/null 2>&1

如果你想以用户joey的身份每小时的第15分钟运行某个程序,可以使用:

15 * * * * joey /usr/bin/somecommand 》 /dev/null 2>&1

其中的星号(*)是通配符,表示cron将忽略这个字段。

如果你想每两小时就运行某个程序,可以在小时字段里使用 */2。它将会在2点,4点,6点……22点,24点运行。具体语句如下:

0 */2 * * * joey /usr/bin/somecommand 》 /dev/null 2>&1

cron语句中还可以使用逗号(,)来指定多个时间。例如你想在每小时的15分和30分运行某个程序,可以在分钟字段使用 15,30:

15,30 * * * * joey /usr/bin/somecommand 》 /dev/null 2>&1

如果你想在每月的第一周(即1号到7号)每天的指定时间运行某个程序,可以在日期字段使用 1-7:

15,30 */2 1-7 * * joey /usr/bin/somecommand 》 /dev/null 2>&1

这条语句将在每月的第1-7日每两小时的15分和30分(02:15,02:30……22: 15,22:30等)运行 /usr/bin/somecommand 命令。

如果你想在每天的16:18执行一个脚本集合,可以把所有要执行的脚本放到一个目录中(如 /home/username/cron),可以使用:

18 16 * * * root run-parts /home/username/cron 》 /dev/null 2>&1

如果你想保存某个程序的输出结果, 可以把 》 /dev/null 2>&1 替换为 》 /home/user/somecommand.log 2>&1 。

总结

查看当前用户的cron配置,使用 crontab -l

编辑当前用户的cron配置,使用 crontab -e

删除当前用户的cron配置,使用 crontab -r

以root身份查看/编辑/删除某用户的cron配置,在命令后加上 -u USERNAME

配置系统级的任务,编辑 /etc/crontab 文件

linux写语句自动执行一次,Linux系统下自动执行指定任务 cron相关推荐

  1. Linux系统下自动搜索USB摄像头地址及设备信息

    Linux系统下自动搜索USB摄像头地址及设备信息 在进行到多个USB摄像头开发时,会涉及到获取摄像头地址及设备信息问题. 一般USB摄像头的设备信息是固定的,我们基于设备信息,就可以在软件开发时进行 ...

  2. linux下挂载优盘脚本,一种linux系统下自动挂载U盘的方法与流程

    技术领域 本发明涉及服务器维护技术领域,尤其涉及一种linux系统下自动挂载U盘的方法. 背景技术: 不管是测试服务器的维护,还是用户使用的服务器,在维护.更新.使用过程中,需要使用U盘向服务器拷贝文 ...

  3. linux为用户指定资源大小,Linux_Linux系统下生成一个指定大小的文件,在装系统,因此在这里随便记 - phpStudy...

    Linux系统下生成一个指定大小的文件 在装系统,因此在这里随便记点东西. 从前与经理讨论NVR项目的时候,他提到要预先将用户指定好的磁盘空间预留出来,这是比较容易实现的功能.不容易实现的是自己写一个 ...

  4. 计划任务linux每天执行一次,linux 每天执行任务计划

    本文介绍在Linux下的两种定时执行任务的方法:at命令,以及crontab服务. (1)at命令 假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了. 设置at命令很简单,指示定 ...

  5. linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  6. Linux怎么让文件按大小排序,linuxsortlinux系统下,按文件的大小进行排序的命令...

    怎样用sort 命令以 GPA作为关键字排序文件 Linux可以使用ls命令实现这一功能. ls命令是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多. ls命令默认是按照文件名的字母 ...

  7. linux添加HP网络打印机,在Ubuntu 18.10系统下安装HP网络打印机的方法

    本文介绍在Ubuntu 18.10系统下安装HP网络打印机的方法,只需要四个步骤就可以了.同样的方法也适合在Ubuntu 18.04系统下. 背景 最近做了个双系统Windows+Ubuntu 18. ...

  8. linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法

    本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法,使用它可以进行Python多版本管理,目的是防止不同的Python版本因为不兼容而出现错误.安装pyenv其实非常的简单,只需要在系统 ...

  9. linux修改容器内的mysql端口_Linux系统下修改phpstudy集成环境中的MySQL端口号的步骤...

    这篇文章给大家介绍的内容是关于Linux系统下修改phpstudy集成环境中的MySQL端口号的步骤 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 首先需要安装好phpstu ...

最新文章

  1. 远程连接windows出现身份验证错误,提示由于CredSSP加密Oracle修正解决方案
  2. platform平台工作原理
  3. linux j查找文件位置,Linux下的文件查找命令——find
  4. js中表单验证常用到的正则表达式
  5. 物联网时代下的MCU,是市场倒逼还是彼此互相成就
  6. 【自然框架之SSO】实现SSO的一个初步想法
  7. LinkedIn:用数据提高视频性能
  8. MATLAB使用教程(三)——在文件中编程
  9. windows iis 部署 django项目
  10. Laravel核心解读--Database(一)基础介绍
  11. codevs1080线段树练习
  12. 软件设计师历年真题及答案2009-2017
  13. 螺旋桨RNA结构预测竞赛第10名方案
  14. 嵌入式软件工程师就只需会写C代码吗
  15. 本地打印后台处理程序服务没有运行和windows无法连接到打印机拒绝访问
  16. Emacs基础使用教程及常见命令整理
  17. 大叔配萝莉/正太的电影一般都不会差。。。
  18. 【企业管理】2021年商业计划书PPT模板(68份)
  19. python模块化 面向对象,Python学习记录4-面向对象,,OOP思想以模块化思
  20. 计算机图片怎么截图快捷键,电脑截图快捷键四种截屏方式,笔记本电脑如何截屏截图?...

热门文章

  1. 提前泄露小米10至尊版,博主赔偿100万;传字节跳动实习生删除GB以下所有机器学习模型;​快手宣布7月将取消大小周|极客头条
  2. 谷歌与苹果结盟,Facebook万亿帝国梦碎?
  3. Java 已老矣,生态却依旧!
  4. 倒计时2天 | AI开发者大会完整议程揭秘!与百名大咖玩转人工智能
  5. 漫画:为什么生僻字计算机上打不出来,或者打出来也无法显示呢?
  6. 作为一个非天才型选手,普通程序员如何升级打怪?
  7. 循环智能杨植麟:“人机耦合”将是对话语义应用的新趋势!
  8. 小米回应暴力裁员;报告称安卓手机贬值速度是 iPhone 两倍;Ant Design 4.0.1 发布| 极客头条...
  9. 我眼中的分布式系统可观测性
  10. 8 天扩容超 100 万核,腾讯会议正在刷新历史