linux 作业规划进程crond 定时运行脚本 详解 Myself
2012-12-27 14:19
477 查看
inux下定时执行任务的方法:
1.crond守护进程--->完成定时运行脚本功能:
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。
一般一个用户最多只有一个crontab文件。
2.运行方式有两种:
第一种:
/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
vi /etc/crontab, 在此文件中添加定时执行的命令即可---->完成定时运行脚本任务。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# .---------------- 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,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
第二种:
创建cron脚本---->用命令把此脚本文件添加到指定目录---->完成定时执行命令任务
第一步:写cron脚本文件,命名为crontest.cron
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令
第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本
三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
3.权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。
AIX 中 普通用户默认都有 crontab 权限,如果要限制用户使用 crontab ,就需要编辑/var/adm/cron/cron.deny
HP-UNIX 中默认普通用户没得crontab 权限 ,要想放开普通用户的crontab 权限可以编
4.crond服务 命令
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看服务状态
5.插入的crontab命令详解:
crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存
放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
crontab命令有三种形式的命令行结构:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件
,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,
crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。
命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;
命令行中-l选项的作用是显示用户crontab文件的内容。
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作
业请求。
执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应
的文件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形
式发给用户。文件里的每一个请求必须包含以spaces和tabs分割的六个域。前五个字段可以取整数值,指
定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。
第一道第五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作
业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用
户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时
cron.allow优先,如果都不存在,只有超级用户可以安排作业。
6.简单易懂的例子:
在ubuntu中备份svn上传的代码,将备份的文件命名为svn_backup+当前时间.dump文件(例svn_backup20100525.dump)
1.编写脚本文件(backup.sh)
1.crond守护进程--->完成定时运行脚本功能:
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
cron的配置文件称为“crontab”,是“cron table”的简写。
cron在3个地方查找配置文件:
1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。
一般一个用户最多只有一个crontab文件。
2.运行方式有两种:
第一种:
/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
vi /etc/crontab, 在此文件中添加定时执行的命令即可---->完成定时运行脚本任务。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# .---------------- 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,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
第二种:
创建cron脚本---->用命令把此脚本文件添加到指定目录---->完成定时执行命令任务
第一步:写cron脚本文件,命名为crontest.cron
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令
第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本
三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
3.权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。
AIX 中 普通用户默认都有 crontab 权限,如果要限制用户使用 crontab ,就需要编辑/var/adm/cron/cron.deny
HP-UNIX 中默认普通用户没得crontab 权限 ,要想放开普通用户的crontab 权限可以编
4.crond服务 命令
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看服务状态
5.插入的crontab命令详解:
crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存
放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
crontab命令有三种形式的命令行结构:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件
,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,
crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。
命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;
命令行中-l选项的作用是显示用户crontab文件的内容。
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作
业请求。
执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应
的文件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形
式发给用户。文件里的每一个请求必须包含以spaces和tabs分割的六个域。前五个字段可以取整数值,指
定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。
第一道第五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作
业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用
户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时
cron.allow优先,如果都不存在,只有超级用户可以安排作业。
6.简单易懂的例子:
在ubuntu中备份svn上传的代码,将备份的文件命名为svn_backup+当前时间.dump文件(例svn_backup20100525.dump)
1.编写脚本文件(backup.sh)
sudo touch backup.sh
创建脚本文件,并编辑文件
sudo vim backup.sh
上图为配置的文件内容,代码如下:
#!/bin/sh
sudo svnadmin dump /srv/svn/repos/works > /home/jordy/svn_back_up$(date + %Y%m%d).dump
echo success!
中间那句是将/srv/svn/repos/works 目录下的代码备份到/home/jordy/目录下,文件名为
svn_backup+当前时间.dump文件,最后一句只是提示备份成功,可以删掉。
使用命令
sh -x backup.sh
测试脚本是否成功。
上面脚本文件编写完成后,下面执行定时任务:
sudo vim /etc/crontab
如图
代码中的最后一行,其中:
是表示备份的时间,按照 m h dom mon dow 填写,我的测试时每一分钟执行一次
backup.sh脚本文件。
操作结束,可以去相应的目录下查看备份文件是否生成。
相关文章推荐
- 设置 linux定时运行命令脚本 (crontab详解)
- 让一个脚本自动定时运行,设置、启动 linux定时脚本 (crontab详解)
- Linux中的作业规划进程crond
- linux定时运行命令脚本 (crontab详解)
- Linux入门:作业规划进程crond
- linux:设置 linux定时运行命令脚本 (crontab详解)
- crontab,Linux定时运行命令脚本的进程
- crontab详解-如何让脚本自动定时运行,设置、启动 linux定时器
- linux之crond(作业规划进程)
- linux:作业控制&作业规划进程crond
- python脚本检测linux进程是否运行
- linux下调整crond计划任务脚本进程优先级别
- 在linux下定时执行PHP脚本(定时执行crontab使用方法详解)
- Linux 运行进程实时监控pidstat命令详解
- Linux-进程、进程组、作业、会话、控制终端详解
- Python守护进程和脚本单例运行详解
- 用Shell脚本定时监控Linux下的进程状态并自动重启
- linux定时运行命令脚本——crontab
- 作业规划进程crond