linux crontab工作日志,linux使用crontab执行定时任务
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执行定时任务相关推荐
- linux删除多余日志,linux 删除日志
https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...
- linux如何删除日志,linux 删除日志
https://jingyan.baidu.com/album/c1a3101e73129ade656deb9d.html?picindex=2 里面的 ls -s 可以看到目录 https://zh ...
- linux如何截断日志,linux 如何截取一段时间内log日志
截取一段时间内的log日志可以使用sed命令对log文件进行抽取操作: 1,sed查看某时间段到现在的系统日志: sed -n '/May 20 17/,$p' /var/log/messages | ...
- linux 定时切割日志,Linux 定时切割日志任务
方法一:vi /etc/crontab 方法二:crontab -e 系统定时任务配置文件: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin M ...
- linux清除log日志,linux清除log日志
1.删除文件命令:find 对应目录 命令选项 实例命令 find /export/Logs/ -type f -name "*log*" -mtime +3 -exec rm ...
- linux不写日志,linux 重要日志
以下介绍的是20个位于/var/log/ 目录之下的日志文件.其中一些只有特定版本采用,如dpkg.log只能在基于Debian的系统中看到. /var/log/messages - 包括整体系统信息 ...
- linux 程序调试日志,Linux程序调试
Linux下的段错误产生的原因及调试方法 简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一般来说,段错误就是指访问的内存超出了 ...
- 5显示日志_如何在 Linux 中管理日志 | Linux 中国
Linux 系统上的日志文件包含了很多信息--比你有时间查看的还要多.以下是一些建议,告诉你如何正确的使用它们--而不是淹没在其中.-- Sandra Henry-stocker Linux 系统上的 ...
- linux 进程 异常日志,linux后台启动程序,处理nohup日志太大的问题
1.nohup.out的由来及作用 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 描述:nohup 命令运行由 Command ...
最新文章
- MySQL 错误代码和消息
- python中notebook_Jupyter Notebook--学习python必不可少的工具
- Android Error: This attribute must be localized.
- Linux命令之乐--expr
- linux 守护进程管理 supervisor 简介 可用于docker容器内守护进程
- C++ 异常处理Demo - win32 版
- Python组织文件 实践:查找大文件、 用Mb、kb显示文件尺寸 、计算程序运行时间
- 文本识别新王者CharNet:卷积字符网络
- 读《构建之法》第四,十七章有感
- Dev XtraTreeList 学习笔记
- 【Hadoop】HDFS数据复制
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)...
- CSP信息学奥赛知识总结
- 新建UE4 c++类
- 360导航源码php,51zxw 仿360网址导航源码
- PHP爆绝对路径方法总结帖
- Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7
- 利用KNeighborsClassifier最近邻分类器,做莺尾花分类
- 不当程序员,你会干什么
- golang之gorm的事务操作 事务不成功原因
热门文章
- 每日程序C语言34-利用指针将输入的三个数排序
- 【数据结构】—顺序表的插入、删除、查找操作
- com.esri.android,解决ArcGIS Android Could not find class 'com.esri.android.map.MapView'问题
- UML大战需求分析阅读笔记——02
- 不用比较运算符及循环控制语句,判断int型的a、b两数的大小
- 轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
- sonar 匿名内部类写法不推荐
- Css网格布局-Grid布局
- Ex 2_5 求解递推式..._第三次作业
- ssh服务、密钥登陆配置