如何用脚本创建crontab定时执行脚本任务

luckcy 的BLOG
用户名:luckcy
文章数:158
评论数:80
访问量:1303540
注册日期:
阅读量:5863
阅读量:12276
阅读量:320823
阅读量:1031742
51CTO推荐博文
什么是Cron和Crontab
Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本。更详细的概念和使用方法介绍请点击Cron和Crontab是什么?
现在我们要讨论的是,许多的php程序员都可以很快完成Web应用的开发,PHP代码的调试也比PERL或C语言容易很多,不过经常会碰到有php程序员会问:如何在linux系统中使用crontab来运行Php脚本?比如ubuntu crontab 定时执行php代码。
Ubuntu 如何使用Crontab定时自动执行PHP脚本
现在远方博客也碰到了需要在指定的时间运行php脚本的情况,比如定时进行网站的数据统计、自动执行数据库备份任务、定时发送email等等。
如果我们不使用Cron来执行php脚本,或许我们会采用php include的方法。比如在index.php 中添加代码:&?php include &crontab.php&?&。当访客通过浏览器访问的时候,自动执行了crontab.php。当然这只是一种思路,这种方法并不能指定时间定时运行PHP脚本,同时也给index.php带来了额外的服务器消耗。而Linux Ubuntu Crontab 可以很好地完成php 定时任务,这也是写这篇关于cron的文章的目的。
然后首先想到的是和windows 系统下的计划任务一样,通过在windows中使用php的命令行模式执行计划任务实现定时自动执行php脚本,这是一个思路,另外一个思路就是直接在浏览器中访问php脚本的地址,定时自动打开浏览器访问该网址,执行php脚本。因此在Ubuntu服务器系统下,同样有类似的两种思路。下面逐步介绍使用Ubuntu Crontab定时执行PHP脚本的设置方法。
PHP 安装模式
首先我们必须先确认自己在LINUX Ubuntu 服务器上php的安装模式,以CGI 模块还是Apache模块方式安装? 如果不确定php安装模式,可以使用 phpinfo() 函数查看:将&?php phpinfo(); ?& 写在php文件中上传到网站服务器,访问该页面,就在页面顶部我们找到&Server API&,如果类似&Apache 2.0 Handler&,那么就是apache模块;否则php是CGI 模式(shell 命令行模式)。这两种不同的php安装模式,正对应于前面介绍的ubuntu crontab 定时执行php的两种解决方法。
如果Server API是cgi,那么在需要cron执行的php脚本的第一行额外加入一段代码#!/usr/bin/php -q(类似PERL语法),指定服务器中php可执行程序的位置,具体步骤如下:
1. 确认Ubuntu系统已经安装了php5-cli模块,安装命令:apt-get install php5-cli。在目录 /usr/bin/php下生成 php可执行程序。
2.& 编辑待定时执行的php脚本文件crontab.php,如:
#!/usr/bin/php -q
$file = &/var/www/&.date(&H&).&_&.date(&i&).&_&.date(&s&).&.txt&;
file_put_contents($file,date(&Y-m-d&));
3.& 编辑 crontab 任务:
打开终端,输入命令:crontab -e,
Select an editor.& To change later, run &select-editor&.
1. /bin/ed
2. /bin/nano&&&&&&& &&- easiest
3. /usr/bin/vim.tiny
选择一个Ubuntu编辑器后,编辑/tmp/crontab.AuN7IQ/crontab 文件:
# m h& dom mon dow&& command
在下面添加定时执行命令:
* * * * * php /path/to/your/cron.php
5个星号分别代表定时指定每分、小时、日、月、周。如每天的下午7点执行crontab.php,命令为:
* 19 * * * php /var/www/cron/crontab.php
然后按Ctrl+O保存,Ctrl+X退出。
4. 执行以下Crontab命令行
Shell& crontab crontab
确认crontab.php的权限为可执行(&chmod 755 /var/www/cron/crontab.php&)。
Apache 模块
如果php安装是以 apache 模式运行的,那么在要在ubuntu服务器定时执行的php脚本开头就不用加 #!/usr/bin/php& -q 这一行。php脚本在ubuntu 通过crontab的定时执行通过Lynx浏览器的自动访问来完成。
1.& Lynx浏览器安装。
Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:sudo apt-get install lynx。
2. 编辑cron任务,命令crontab -e
* * * * * lynx -dump
注意这个地址最好用绝对地址,包含&http://&的完整url。
3. 再次执行下面的命令行:
Shell& crontab crontab
因为我在ubuntu安装的是lamp server,所以采用第二种Apache 模块的方法就可以使用crontab定时执行php脚本代码。
了这篇文章
类别:┆阅读(0)┆评论(0)如何使用脚本建立crontab任务?_问答_ThinkSAAS
如何使用脚本建立crontab任务?
如何使用脚本建立crontab任务?
其实我就是想让我的crontab的任务新建一个crontab任务,而crontab -e似乎必须手工输入(真是这样吗?),所以不行。
要想简单点,把可执行文件扔到/etc/cron.*目录里面就能执行。比如/etc/cron.daily就是每天执行的脚本。
如果需要更细致的时间控制,可以将脚本扔到/etc/cron.d 里面,这里面的文件格式跟普通的 cron 类似,但是命令之前多了一个用户名,可以指定以任意身份执行命令。
如果想实现类似crontab -e的管理方式,那么直接去/var/spool/cron/修改文件就好了,那个目录里面的文件名对应着用户名,一看就明白。
说个简单点的
crontab -l & now.cron
echo '0 0 * * * echo test' && now.cron
crontab now.cron
直接丢到crond的任务执行的文件就行了
echo"00 */1 * * * commandxxx"&& /var/spool/cron/root
crontab -l 看下
添加你想要问的问题
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信教你在Linux中使用crontab命令定时执行shell脚本
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
  使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行
  如何往 cron 中添加一个作业?
  # crontab &e
  0 5 * * * /root/bin/backup.sh
  这将会在每天早上5点运行 /root/bin/backup.sh
  Cron 各项的描述
  以下是 crontab 文件的格式:
  {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
  o minute:区间为 0 & 59
  o hour:区间为0 & 23
  o day-of-month:区间为0 & 31
  o month:区间为1 & 12. 1 是1月. 12是12月.
  o Day-of-week:区间为0 & 7.周日可以是0或7.
  Crontab 示例
  1.在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
  1 0 * * * /root/bin/backup.sh
  2.每个工作日(Mon & Fri) 11:59 p.m 都进行备份作业。
  59 11 * * 1,2,3,4,5 /root/bin/backup.sh
  下面例子与上面的例子效果一样:
  59 11 * * 1-5 /root/bin/backup.sh
  3.每5分钟运行一次命令
  */5 * * * * /root/bin/check-status.sh
  4.每个月的第一天 1:10 p.m 运行
  10 13 1 * * /root/bin/full-backup.sh
  5.每个工作日 11 p.m 运行。
  0 23 * * 1-5 /root/bin/incremental-backup.sh
  Crontab 选项
  以下是 crontab 的有效选项:
  o crontab &e :修改 crontab 文件.如果文件不存在会自动创建。
  o crontab &l :显示 crontab 文件。
  o crontab -r :删除 crontab 文件。
  o crontab -ir :删除 crontab 文件前提醒用户。
  以上就是crontab命令的具体使用方法了。
  作者:不详 来源:网络
小编工资已与此赏挂钩!一赏一分钱!求打赏↓ ↓ ↓
如果你喜欢本文章,请赐赏:
已赐赏的人
我的电子书Linux, Shell脚本替用户添加Crontab计划任务 - Linux/Unix&&&&>>&& Linux, Shell脚本为用户添加Crontab计划任务
比较简单,这样就可以了
cat & /var/spool/cron/root &&EOF
* * * * * /usr/sbin/ntpdate cn.pool.ntp.org && /var/log/ntpdate.log
项目中的应用:
---------------------------------------------------
crontabfile=/var/spool/cron/mysql
if [ -e $crontabfile ]; then
echo "*/10 * * * * /home/mysql/PEnterAccount/DaemonPEnterAccount.sh" &&$crontabfile
touch $crontabfile
echo "*/10 * * * * /home/mysql/PEnterAccount/DaemonPEnterAccount.sh" &&$crontabfile
service crond restart

我要回帖

更多关于 shell脚本添加crontab 的文章

 

随机推荐