1.当前有个项目,由于没能找到更好的方式解决这个问题,只能使用Linux的定时任务代替,使用crontab定时执行php文件等。

一般套件服务器配置差不多都安装了crontab服务,所以可以直接使用即可。

如果没有安装,centos可以使用yum安装crontab服务。

安装crontab:

yum install crontabs

1yuminstallcrontabs

说明:

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

1

2

3

4servicecrondstart//启动服务

servicecrondstop//关闭服务

servicecrondrestart//重启服务

servicecrondreload//重新载入配置

查看crontab服务状态:

service crond status

1servicecrondstatus

手动启动crontab服务:

service crond start

1servicecrondstart

查看crontab服务是否已设置为开机启动,执行命令:

ntsysv

1ntsysv

加入开机自动启动:

chkconfig –level 35 crond on

1chkconfig–level35crondon

crontab 配置文件格式  【参考链接:centos中crontab(计时器)用法详解 】

基本格式 :

*     *   *   *    *   command

分  时 日  月  周    命令

1

2*  * *  *  *  command

分 时日 月 周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

定时执行我需要的php脚本【由于我这个php文件里面有引入文件,导致不能正常执行,我使用curl请求方式(还有lynx、wget等),如果要提高效率,php去执行本地php文件是最佳选择】

#每分钟远程请求一次目标url

* * * * * root curl -i http://xxx/service/xx.php

1

2#每分钟远程请求一次目标url

*****rootcurl-ihttp://xxx/service/xx.php

以下提供几种写法

#使用PHP程序来调用PHP脚本。

00 * * * * /usr/local/bin/php /home/john/myscript.php

1

2#使用PHP程序来调用PHP脚本。

00****/usr/local/bin/php/home/john/myscript.php

#Lynx文本浏览器访问URL来每小时执行PHP脚本

00 * * * * lynx -dump https://www.xxx.com/script.php

1

2#Lynx文本浏览器访问URL来每小时执行PHP脚本

00****lynx-dumphttps://www.xxx.com/script.php

#使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件

*/10 * * * * /usr/bin/wget -q -O temp.txt https://www.centos.bz/myscript.php

1

2#使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件

*/10****/usr/bin/wget-q-Otemp.txthttps://www.centos.bz/myscript.php

2.crontab文件的一些例子:

#每晚的21:30 重启apache

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日的4 : 45重启apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每周六、周日的1 : 10重启apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

#每天18 : 00至23 : 00之间每隔30分钟重启apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

#每星期六的11 : 00 pm重启apache

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

#晚上11点到早上7点之间,每隔一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

#每一小时重启apache

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

#每月的4号与每周一到周三的11点重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

#一月一号的4点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

#每半小时同步一下时间

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20#每晚的21:30 重启apache

3021***/usr/local/etc/rc.d/lighttpdrestart

#每月1、10、22日的4 : 45重启apache

4541,10,22**/usr/local/etc/rc.d/lighttpdrestart

#每周六、周日的1 : 10重启apache

101**6,0/usr/local/etc/rc.d/lighttpdrestart

#每天18 : 00至23 : 00之间每隔30分钟重启apache

0,3018-23***/usr/local/etc/rc.d/lighttpdrestart

#每星期六的11 : 00 pm重启apache

023**6/usr/local/etc/rc.d/lighttpdrestart

#晚上11点到早上7点之间,每隔一小时重启apache

*23-7/1***/usr/local/etc/rc.d/lighttpdrestart

#每一小时重启apache

**/1***/usr/local/etc/rc.d/lighttpdrestart

#每月的4号与每周一到周三的11点重启apache

0114*mon-wed/usr/local/etc/rc.d/lighttpdrestart

#一月一号的4点重启apache

041jan */usr/local/etc/rc.d/lighttpdrestart

#每半小时同步一下时间

*/30****/usr/sbin/ntpdate210.72.145.44

3.如何查看crontab的日志记录

当crontab中的同步任务时而成功,时而不成功,什么原因呢?我们需要通过日志来分析

日志目录文件 【 /var/log/cron】

tail -f /var/log/cron

1tail-f/var/log/cron

4.使用Linux定时任务执行自动化备份数据库

4.1 创建备份脚本【注意,如果使用windows平台创建shell,可能会报错, /sh^M】 {参考链接:http://www.osyunwei.com/archives/714.html}

[

因为操作系统是windows,我在windows下编辑的脚本,所以有可能有不可见字符。

脚本文件是DOS格式的, 即每一行的行尾以\n\r来标识, 其ASCII码分别是0x0D, 0x0A.

可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的

]

4.2 创建保存备份文件的目录:/home/mysql_back

4.3 创建备份脚本文件:  /home/crondshell/mysql_databak.sh

#!/bin/sh

DUMP=/alidata/server/mysql-5.5.40/bin/mysqldump #mysqldump备份文件执行路径

OUT_DIR=/home/mysql_back #备份存放路径

LINUX_USER=root #系统用户名

DB_NAME=xxx #要备份的数据库名字

DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错

DB_PASS=root #数据库密码

DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

cd $OUT_DIR #进入备份存放目录

DATE=`date +%Y_%m_%d` #获取当前系统时间

OUT_SQL="1yrn_$DATE.sql" #备份数据库的文件名

TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名

$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份

tar -czf $TAR_SQL $OUT_SQL #压缩为.tar.gz格式

rm $OUT_SQL #删除.sql格式的备份文件

chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者

find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件(注意:{} \;中间有空格)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33#!/bin/sh

DUMP=/alidata/server/mysql-5.5.40/bin/mysqldump#mysqldump备份文件执行路径

OUT_DIR=/home/mysql_back#备份存放路径

LINUX_USER=root#系统用户名

DB_NAME=xxx#要备份的数据库名字

DB_USER=root#数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错

DB_PASS=root#数据库密码

DAYS=7#DAYS=7代表删除7天前的备份,即只保留最近7天的备份

cd$OUT_DIR#进入备份存放目录

DATE=`date+%Y_%m_%d`#获取当前系统时间

OUT_SQL="1yrn_$DATE.sql"#备份数据库的文件名

TAR_SQL="mysqldata_bak_$DATE.tar.gz"#最终保存的数据库备份文件名

$DUMP-u$DB_USER-p$DB_PASS$DB_NAME--default-character-set=utf8--opt-Q-R--skip-lock-tables>$OUT_SQL#备份

tar-czf$TAR_SQL$OUT_SQL#压缩为.tar.gz格式

rm$OUT_SQL#删除.sql格式的备份文件

chown$LINUX_USER:$LINUX_USER$OUT_DIR/$TAR_SQL#更改备份数据库文件的所有者

find$OUT_DIR-name"mysqldata_bak*"-typef-mtime+$DAYS-execrm{}\;#删除7天前的备份文件(注意:{} \;中间有空格)

4.4 修改crontab 添加定时备份脚本任务

vim /etc/crontab

02 17 * * * root  /home/crondshell/mysql_databak.sh  #表示每天 17点02分进行自动备份

1

2vim/etc/crontab

02 17 * * * root /home/crondshell/mysql_databak.sh #表示每天 17点02分进行自动备份

5. 推荐

推荐学习网址:http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

AD:【码农技术Blog】

linux crontab工作日志,linux使用crontab执行定时任务相关推荐

  1. linux删除多余日志,linux 删除日志

    https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...

  2. linux如何删除日志,linux 删除日志

    https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...

  3. linux如何截断日志,linux 如何截取一段时间内log日志

    截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' /var/log/messages | ...

  4. linux 定时切割日志,Linux 定时切割日志任务

    方法一:vi  /etc/crontab 方法二:crontab -e 系统定时任务配置文件: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin M ...

  5. linux清除log日志,linux清除log日志

    1.删除文件命令:find  对应目录  命令选项 实例命令 find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm ...

  6. linux不写日志,linux 重要日志

    以下介绍的是20个位于/var/log/ 目录之下的日志文件.其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到. /var/log/messages - 包括整体系统信息 ...

  7. linux 程序调试日志,Linux程序调试

    Linux下的段错误产生的原因及调试方法 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了 ...

  8. 5显示日志_如何在 Linux 中管理日志 | Linux 中国

    Linux 系统上的日志文件包含了很多信息--比你有时间查看的还要多.以下是一些建议,告诉你如何正确的使用它们--而不是淹没在其中.-- Sandra Henry-stocker Linux 系统上的 ...

  9. linux 进程 异常日志,linux后台启动程序,处理nohup日志太大的问题

    1.nohup.out的由来及作用 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 描述:nohup 命令运行由 Command ...

最新文章

  1. MySQL 错误代码和消息
  2. python中notebook_Jupyter Notebook--学习python必不可少的工具
  3. Android Error: This attribute must be localized.
  4. Linux命令之乐--expr
  5. linux 守护进程管理 supervisor 简介 可用于docker容器内守护进程
  6. C++ 异常处理Demo - win32 版
  7. Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间
  8. 文本识别新王者CharNet:卷积字符网络
  9. 读《构建之法》第四,十七章有感
  10. Dev XtraTreeList 学习笔记
  11. 【Hadoop】HDFS数据复制
  12. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)...
  13. CSP信息学奥赛知识总结
  14. 新建UE4 c++类
  15. 360导航源码php,51zxw 仿360网址导航源码
  16. PHP爆绝对路径方法总结帖
  17. Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7
  18. 利用KNeighborsClassifier最近邻分类器,做莺尾花分类
  19. 不当程序员,你会干什么
  20. golang之gorm的事务操作 事务不成功原因

热门文章

  1. 每日程序C语言34-利用指针将输入的三个数排序
  2. 【数据结构】—顺序表的插入、删除、查找操作
  3. com.esri.android,解决ArcGIS Android Could not find class 'com.esri.android.map.MapView'问题
  4. UML大战需求分析阅读笔记——02
  5. 不用比较运算符及循环控制语句,判断int型的a、b两数的大小
  6. 轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
  7. sonar 匿名内部类写法不推荐
  8. Css网格布局-Grid布局
  9. Ex 2_5 求解递推式..._第三次作业
  10. ssh服务、密钥登陆配置