linux定时命令脚本 linux定时执行脚本命令

如何写一个linux的定时程序脚本?(代码)crontab -e添加一个定时任务就可以了
格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日 , f4 表示月份,f5 表示一个星期中的第几天 。program 表示要执行的程式 。
比如:
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
如何使用Linux的Crontab定时执行PHP脚本的方法键入 crontab
-e 编辑crontab服务文件
------------------------------------------Ubuntu中的linux---------------
安装lynx包:apt-get isntall lynx
先写ln.sh脚本:lynx
设置定时:crontab -e
0 1 * * * bash /var/www/test/ln.sh
-------------------------------------------------------------------------
分为两种情况:
第一种情况:你的php脚本中没有引入其他PHP文件 , 也就是说没有include,require_once等命令的PHP文件
* */1 * * * /usr/local/php/bin/php
/var/www/html/wwwroot/web/script.php (每一小时执行一次script.php)
注意,这样写需要把PHP变成可执行的脚本文件 。在命令行下,脚本所在目录
chmodx script.php
注意:你的script.php文件中一定要在开始处加上: #!/usr/local/php/bin/php -q
,下面是一个完整的script.php文件代码
?php
#!/usr/local/php/bin/php -q
session_start();
define( "DB_PASSWORD", "111111" ); // 服务器登陆密码
define( "DB_NAME", "db_shopping" ); // 数据库名称
define( "DB_USER", "root" ); // 服务器登陆用户
define( "DB_HOST", "127.0.0.1" ); // 服务器IP地址或名称
define( "DB_PORT", "3306" ); // 服务器登陆端口号
define( "DB_CHARSET", "utf8" ); // 数据库默认语言
define( "DB_DEBUG", false ); // 是否设置为调试模式
define( "DB_CLOSE", false ); // 是否主动关闭数据库连接
$con=mysql_connect(DB_HOST.":".DB_PORT,DB_USER,DB_PASSWORD);
mysql_query ( "SET character_set_connection = ".DB_CHARSET.",
character_set_results = ".DB_CHARSET.", character_set_client =
binary");
if (!$con) die("Mysql Error:".mysql_error());
mysql_select_db(DB_NAME,$con);
//$dates=date()
$sqll="insert into test(NAME,Sex,thisdate,state)
values('love','0','2011-08-11','1')";
$resl=mysql_query($sqll);
【linux定时命令脚本 linux定时执行脚本命令】echo "成功...";
?
/usr/local/php/bin/php的意思是:用/usr/local/php/bin/目录中的php.exe文件来执行
/var/www/html/wwwroot/web/script.php
第二种情况:你的php脚本中有引入其他PHP文件 , 也就是说有用到include,require_once命令的PHP文件(先写shell脚本)
上面的方法有一个问题:当script脚本中有include文件时,脚本根本找不对PHP的路径,php将会在/bin/local/php目录下找文件,当然找不到 。
所以,遇见这种情况 , 按照下面的方法做:
在终端上输入如下命令得到sh 和 lynx 程序的路径:
whereis sh
whereis lynx
or
which sh
which lynx
随便输入一个,其中便会返回你要的路径 。如果你的系统里没有lynx,试试links,w3m,或者
links2,这些是其它的文本模型浏览器 。这些浏览器将会运行你的脚本 。
然后你需要创建一个sh文件 , 用它来调用php文件,通过lynx 。假设你的服务器已经安装了lynx,sh路径为
/bin/sh,lynx路径为 /usr/local/bin/lynx
#!/bin/sh
/usr/local/bin/lynx -source
注意感叹号
把这个脚本保存为cron-lynx.sh
保存到一个你找得到的地方 , 比如:
你可以把它放在网站根目录 。
然后再创建一个script.php的文件 。当cron运行的时候 , 将会通过lynx来调用它 。这个文件可以通过浏览器来访问 。
然后编辑主机的crontab,像下面这样 。
*/1 * * * * root /bin/sh
/usr/www/yourdirectory/sh_scripts/cron-lynx.sh
在/bin/sh 和 /usr 间有空格 。就这样就设好了,还有一点要注意的是,你的sh文件和php文件都正确无误 。
===================================================================================
linux下的crontab服务:
1、crontab 是用来让使用者在固定时间或固定间隔执行程序之用
在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现 。
以某一频率执行任务
linux缺省会启动crond进程,crond进程不需要用户启动、关闭 。
crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中 。
cron的调度文件有以下几个:
1.
crontab
2.
cron.d
3.
cron.daily
4.
cron.hourly
5.
cron.monthly
6.
cron.weekly
如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab
或cron.d目录中 。
示例:
每隔一分钟执行一次脚本 /opt/bin/test-cron.sh
可以在cron.d新建脚本 echo-date.sh
内容为
*/1 * * * * root /opt/bin/test-cron.sh
2、cron是一个linux下的定时执行工具 , 可以在无需人工干预的情况下运行作业 。由于Cron
是Linux的内置服务,如果它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
现在Cron这个服务已经在进程里面了 , 我们就可以用这个服务了
查看服务是否已经运行用 ps -ax | grep cron
3、crontab命令
查看该用户下的crontab服务是否创建成功,用 crontab-l
命令
命令 which php 查看linux下安装的php的路径
cron服务提供crontab命令来设定cron服务的 , 以下是这个命令的一些参数与说明:
crontab -u
//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls
/tmp/ls.txt
任务调度的crond常驻命令crond
是linux用来定期执行程序的命令 。当安装完成操作系统之后,默认便会启动此
任务调度命令 。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作 。
crontab命令选项:
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
4、cron文件语法:

小时


星期
命令
0-59
0-23
1-31
1-12
0-6
command
(取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
5、任务调度设置文件的写法
可用crontab
-e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek
command
分钟
小时


天每星期
命令
每个字段代表的含义如下:
Minute
每个小时的第几分钟执行该任务
Hour
每天的第几个小时执行该任务
Day
每月的第几天执行该任务
Month
每年的第几个月执行该任务
DayOfWeek
每周的第几天执行该任务
Command
指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选
字段,可视需要决定 。对于不指定的字段,要用“*”来填补其位置 。
举例如下:
5
*
*
*
*
ls
指定每小时的第5分钟执行一次ls命令
30
5
*
*
*
ls
指定每天的 5:30 执行ls命令
30
7
8
*
*
ls
指定每月8号的7:30分执行ls命令
30
5
8
6
*
ls
指定每年的6月8日5:30执行ls命令
30
6
*
*
ls
指定每星期日的6:30执行ls命令[注:0表示星期天 , 1表示星期1,
以此类推,也可以用英文来表示 , sun表示星期天,mon表示星期一等 。]
30
3
10,20
*
*
ls
每月10号及20号的3:30执行ls命令[注:“ , ”用来连接多个不连续的时段]
25
8-11
*
*
*
ls
每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15
*
*
*
*
ls
每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30
6
*/10
*
*
ls
每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令 。]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50
7
*
*
*
root
run-parts
/etc/cron.daily[
注:run-parts参数表示,执行后面目录中的所有可执行文件 。]
6、 新增调度任务
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务 , wq存盘退出 。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab , 添加相应的任务 。
7、 查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp
//列出用户jp的所有调度任务
8、 删除任务调度工作
crontab -r//删除所有任务调度工作
9、 任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls /jp/test
21
注:21 表示执行结果及错误信息 。
编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次
/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情 。
用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务 。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01
*
*
*
*
root run-parts
/etc/cron.hourly
//每小时执行/etc/cron.hourly内的脚本
02
4
*
*
*
root run-parts
/etc/cron.daily
//每天执行/etc/cron.daily内的脚本
22
4
*
*
root run-parts
/etc/cron.weekly
//每星期执行 /etc/cron.weekly内的脚本
42
4
1
*
*
root run-parts
/etc/cron.monthly
//每月去执行/etc/cron.monthly内的脚本
大家注意”run-parts”这个参数了 , 如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了
例如:
1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出 。
2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
11 2 21 10 * rm -rf /mnt/fb
在linux下怎么让一个脚本定时运行Linux中linux定时命令脚本,周期执行linux定时命令脚本的任务一般由cron这个守护进程来处理ps -ef | grep cron
cron读取一个或多个配置文件linux定时命令脚本,这些配置文件中包含linux定时命令脚本了命令行及其调用时间 。
cron的配置文件称为“crontab”,是“cron table”的简写 。
一、 cron在3个地方查找配置文件(设置shell脚本):
1、/var/spool/cron/yanggang 这个目录下存放的是每个用户(包括root)的crontab任务 , 每个任务以创建者的名字命名,比如用户tom建的crontab任务对应的文件是/var/spool/cron/tomyanggang@barry$ sudo ls -l /var/spool/cron/(或有时是 /var/spool/cron/crontabs/)
-rw------- 1 rootcrontab 1071 2011-09-19 17:20 root
-rw------- 1 yanggang crontab 1176 2011-09-24 11:07 yanggang
一般一个用户最多只有一个crontab文件(如:root, yanggang等) , 其对应日志在/var/spool/mail/root(或/var/spool/mail/yanggang)文件里
2、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其linux定时命令脚本他任务的crontab 。SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/
# .---------------- 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
例如:
*/5 * * * * root /usr/libexec/atrun
minute:代表一小时内的第几分 , 范围 0-59 。
hour:代表一天中的第几小时,范围 0-23 。
mday:代表一个月中的第几天,范围 1-31 。
month:代表一年中第几个月,范围 1-12 。
wday:代表星期几,范围 0-7 (0及7都是星期天) 。
who:要使用什么身份执行该指令,当您使用 crontab -e 时 , 不必加此字段 。
command:所要执行的指令 。
3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本 。
linux定时执行任务的shell脚本linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab -e 编辑周期任务
30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smb
crontab命令说明:
 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务 。
语法
 crontab(选项)(参数)
选项
 -e:编辑该用户的计时器设置;
 -l:列出该用户的计时器设置;
 -r:删除该用户的计时器设置;
 -u用户名称:指定要设定计时器的用户名称 。
参数
 crontab文件:指定包含待执行任务的crontab文件 。
知识扩展
 Linux下的任务调度分为两类:系统任务调度和用户任务调度 。
 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等 。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件 。
crontab文件的含义:
 用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段 , 第六段是要执行的命令段,格式如下:
minutehourdaymonthweekcommand顺序:分 时 日 月 周
其中:
minute: 表示分钟,可以是从0到59之间的任何整数 。
hour:表示小时,可以是从0到23之间的任何整数 。
day:表示日期,可以是从1到31之间的任何整数 。
month:表示月份,可以是从1到12之间的任何整数 。
week:表示星期几,可以是从0到7之间的任何整数 , 这里的0或7代表星期日 。
command:要执行的命令 , 可以是系统命令,也可以是自己编写的脚本文件 。
在以上各个字段中 , 还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作 。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次 。同时正斜线可以和星号一起使用,例如*/10 , 如果用在minute字段,表示每十分钟执行一次 。
linux下编写一个shell脚本 每天0点 定时执行某一可执行程序test 。刚学习shell希望大侠们给个代码参考!在某个时间段执行某个程序,准确的说是“定时任务”,我这里介绍2中linux(ubuntu)下定时执行python脚本的方式 。
方法一:
准备好定时启动的脚本auto.py
用root权限编辑以下文件
在文件末尾添加以下命令
以上代码的意思是每隔两分钟执行一次脚本并打印日志 。
crontab编写解释
基本格式
举例说明
方法二:
APScheduler定时框架
APScheduler是一个Python定时任务框架,使用起来十分方便 。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用 。
使用APScheduler需要安装
每天早上6点半执行的例子
代码中的BlockingScheduler是什么呢?
BlockingScheduler是APScheduler中的调度器,APScheduler中有两种常用的调度器,BlockingScheduler和BackgroundScheduler,当调度器是应用中唯一要运行的任务时,使用BlockingSchedule , 如果希望调度器在后台执行,使用BackgroundScheduler 。
代码中是cron是什么?
cron:在特定时间周期性地触发
linux执行定时备份数据脚本对tomcat目录,每隔4个小时进行一次备份,以当前时间进行命名
1.创建备份目录:
mkdir:创建目录
rmdir:删除目录
2.编写运行脚本:
vi/touch:创建文件
vi/vim:编辑文件
打成zip包:
zip -r /usr/local/deploy/caseiBackups/$(date -d "today""%Y%m%d_%H%M%S").zip /usr/local/deploy/apache-tomcat-7.0.57
-r:递归处理,将指定目录下的所有文件和子目录一并处理 。
/user/local/deploy/caseiBackups/$(date -d "today""%Y%m%d_%H%M%S").zip: 要备份文件的保存路径 。
$(date -d "today""%Y%m%d_%H%M%S"):获取系统当前时间 。
/usr/local/deploy/apache-tomcat-7.0.57 :备份文件路径 。
查找小于10天的备份文件,并删除:
find /usr/local/deploy/caseiBackups/ "*.zip" -type f -mtime10 -exec rm {} \;/dev/null 21
/usr/local/deploy/caseiBackups/ :备份的文件所在目录 。
-type
f:表示查找普通类型的文件,f表示普通文件 。
-mtime
5 按照文件的更改时间来查找文件,5表示文件更改时间距现在5天以前;如果是 -mmin5 表示文件更改时间距现在5分钟以前 。
-exec
rm {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号 。
/dev/null
21 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去 。通俗的说 , 就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的 表示让该命令在后台执行 。
3.为执行脚本添加可执行权限:
chmod -R 777 bcaktomcat.sh
4.修改/etc/crontab
可以在最后一行直接添加
0 */4 * * * root /usr/local/deploy/alidata/backtomcat.sh:
每隔4小时执行一次backtomcat.sh脚本
*****command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
5.重启crontab:
service crond restart
?。。。?*^__^*) 嘻嘻……?。。。〉秸饫锞屯炅耍?
关于linux定时命令脚本和linux定时执行脚本命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读