`
iluoxuan
  • 浏览: 579902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

1:linux任务计划

 
阅读更多

1:常常写python脚本每天统计数据什么的;就需要用到linux的任务计划:

 

3. crontab

crontab 命令用于安装、删除或者列出用于驱动cron后台进程的表格。也就是说,用户把需要执行的命令序列放到crontab文件中以获得执行,每个用户都可以有自己的crontab文件。以下是这个命令的一些参数与说明:
1)crontab -u // 设定某个用户的cron服务
2)crontab -l // 列出某个用户cron服务的详细内容
3)crontab -r // 删除没个用户的cron服务
4)crontab -e // 编辑某个用户的cron服务

参数名称 含义 示例
-l 显示用户的Crontab文件的内容 crontabl –l
-i 删除用户的Crontab文件前给提示 crontabl -ri
-r 从Crontab目录中删除用户的Crontab文件 crontabl -r
-e 编辑用户的Crontab文件 crontabl -e

/etc/crontab文件语法如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义及取值范围如下:
Minute :分钟(0-59),表示每个小时的第几分钟执行该任务
Hour : 小时(1-23),表示每天的第几个小时执行该任务
Day : 日期(1-31),表示每月的第几天执行该任务
Month : 月份(1-12),表示每年的第几个月执行该任务
DayOfWeek : 星期(0-6,0代表星期天),表示每周的第几天执行该任务
Command : 指定要执行的命令(如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径)
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。同时,cron支持类似正则表达式的书写,支持如下几个特殊符号定义:
“ * ” ,代表所有的取值范围内的数字;
” / “, 代表”每”(“*/5”,表示每5个单位);
” – “, 代表从某个数字到某个数字(“1-4”,表示1-4个单位);
” , “, 分开几个离散的数字;

含义 取值范围
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6

举例如下:

1
2
3
4
5 * * * * ls // 指定每小时的第5分钟执行一次ls命令
 30 5 * * * ls // 指定每天的 5:30 执行ls命令
 30 7 8 * * ls // 指定每月8号的730分执行ls命令
 50 7 * * * root run-parts/etc/cron.daily // 每天750以root 身份执行/etc/cron.daily目录中的所有可执行文件

4. 新增 cron 任务

推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件,在/var/spool/cron下的crontab文件 不可以直接创建或者直接修改,crontab文件是通过crontab命令得到的)。

# crontab -e

1)直接执行命令行
每2分钟打印一个字符串“Hello World”,保存至文件/home/laigw/cron/HelloWorld.txt中,cron 格式如下:
*/2 * * * * echo “Hello World.” >> /home/HelloWorld.txt

2)shell 文件
每3分钟调用一次 /home/laigw/cron/test.sh 文件,cron 格式如下:
*/3 * * * * /home/laigw/cron/test.sh
文件 /home/laigw/cron/test.sh 的内容如下:
———————————————————————————————————————–

1
2
3
#!/bin/sh
 cd /home/laigw/cron
 echo “shell” >> shell.txt

 

一般的写法:

 

 

7. 例子

●30 5 * * * root /sbin/init 6 这样就将系统配置为了每天早上5点30自动重新启动。
● 0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache

● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务

● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务

● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘

● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件

● 00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} /; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令

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 。

一般是用log记录脚本运行的信息

 

比如:

 

/usr/local/bin appdata.py /home/log/appdata  >> /home/log/appdata.log 2>&1 

 

py脚本运行参数不能出现%s这样的参数

分享到:
评论

相关推荐

    linux加入计划任务

    在Linux系统中,计划任务(Scheduled Tasks)是自动化工作流程的关键组成部分,允许用户或系统管理员在特定时间执行命令或脚本。"linux加入计划任务"这个主题主要涉及到如何利用Linux的cron服务来设置定时任务。下面...

    Linux计划任务入门详解

    ### Linux计划任务入门详解 #### 一、概述 在Linux系统中,计划任务是一个非常重要的功能,它允许用户设定在特定的时间自动执行某些任务。这一功能对于自动化运维、定时备份等场景极为有用。本文将详细介绍Linux...

    linux任务计划cron文档使用

    ### Linux任务计划Cron文档使用详解 #### 一、Cron简介与基本操作 Cron是Linux系统中用于执行周期性任务的一种守护进程。通过Cron可以方便地安排任务自动在指定时间运行,大大提高了系统的自动化程度。Cron支持多种...

    linux 计划任务cron--怎么定时执行的指令

    ### Linux计划任务Cron详解及应用 #### 一、Cron简介 Cron是Linux系统中用于调度周期性任务的守护进程(Daemon),允许用户在固定时间或周期性地执行命令或脚本。通过Cron,用户可以设定复杂的定时任务,如定期...

    Linux计划任务

    * -l 列出某个用户的任务计划 * -r 删除某个用户的任务 * -e 编辑某个用户的任务 cron 文件语法: 分 小时 日 月 星期 命令 * 0-59 0-23 1-31 1-12 0-6 command 特殊符号的含义: * "*" 代表取值范围内的数字 *...

    linux上配置计划任务知识

    在Linux操作系统中,计划任务的配置是一项重要的系统管理任务,它允许系统管理员安排一些自动执行的工作,如数据备份、系统清理、日志滚动等。Cron是一个用来定时执行命令的守护进程,在大多数Linux发行版中,Cron...

    linux计划任务手册

    Linux中的计划任务是系统自动化维护和管理的重要工具,它允许管理员和用户设定特定时间执行的任务。其中,`cron`是Linux最常用的计划任务服务,它按照预设的时间表执行脚本或命令。本文将深入讲解`cron`服务的配置、...

    自动运行任务计划

    例如,如果“自动运行任务计划.exe”在Linux环境中等效为一个名为“run_app.sh”的bash脚本,你可以添加如下行到crontab: ``` 0 9 * * * /path/to/run_app.sh ``` 这表示每天的9:00AM执行run_app.sh脚本。 自动...

    linux下定时执行计划任务

    ### Linux 下定时执行计划任务详解 #### 一、概述 在 Linux 操作系统中,定时执行计划任务是一项非常实用的功能,它可以自动地按照预设的时间周期执行特定的任务或脚本,比如定期备份数据、定时清理日志文件等。...

    linux crontab 计划任务.docx

    Linux Crontab 计划任务 Linux Crontab 是一个强大的计划任务系统,允许用户在特定的时间和日期执行指定的命令或程序。Crontab 使得用户可以轻松地安排和管理计划任务,从而提高工作效率和自动化程度。 Crontab ...

    Linux秒级间隔的计划任务脚本

    在Linux系统中,计划任务(Cron Job)是自动化任务执行的重要工具,它允许用户设置定期执行的任务。然而,标准的Cron系统通常以分钟为最小时间单位,无法实现秒级别的精度。这篇博客"Linux秒级间隔的计划任务脚本...

    linux计划任务失败如何排查原因

    Linux 计划任务失败排查原因 在 Linux 系统中,计划任务是运维工程师经常使用的一种自动化工具,但是当计划任务执行失败时,如何快速定位问题并解决成为了一件很头疼的事情。今天,我们将讨论如何排查 Linux 计划...

    类windows任务计划

    9. **跨平台兼容**:虽然名称提及“类Windows”,但实际实现可能也考虑了其他操作系统,如Linux或macOS,实现跨平台的任务计划功能。 10. **图形化界面**:类Windows任务计划可能提供了一个直观的用户界面,让用户...

    linux计划任务关于计划任务的学习文档

    Linux系统中的计划任务是自动化运维工作的重要组成部分,它允许管理员安排任务在特定时间自动执行。在Linux中,最常用的计划任务工具就是`cron`。本文档主要围绕`cron`服务和如何利用`crontab`命令创建定时任务展开...

    Linux 任务计划

    Linux 任务计划是操作系统中的一项重要功能,它允许系统管理员或普通用户设定在特定时间自动执行的任务,从而实现自动化的工作流程。在Linux中,有两种主要的计划任务工具:`at` 和 `cron`。 1. **一次性任务**: ...

    制作linux计划任务教程.zip

    在Linux系统中,计划任务(Cron Job)是一种自动化任务调度机制,允许用户或系统管理员在特定时间执行脚本或程序。本教程将通过四个关键步骤教你如何在Linux上创建和管理计划任务。 1. **编写Shell脚本**(1.编写sh...

    浅谈:linux cron 计划任务常用符号小结

    总的来说,理解并熟练运用cron计划任务的符号,可以帮助我们更有效地自动化Linux系统中的各种任务,从而提高工作效率。正确设置cron任务的输出处理,既可以避免屏幕污染,也能确保关键信息不会丢失。

    实验一:Linux基础操作

    1. **启动Linux虚拟机**: - Linux虚拟机的启动通常涉及到虚拟化软件,如VMware或VirtualBox。启动过程包括加载虚拟机配置、启动虚拟机操作系统内核,并进入登录界面。 2. **多控制台登录**: - Linux系统提供多...

Global site tag (gtag.js) - Google Analytics