Linux定时任务crontab

定时任务的创建:crontab -e 进入任务编辑状态

* 代表所有的取值范围内的数字
/ 代表每的意思,/5表示每5个单位
- 代表从某个数字到某个数字
, 分开几个离散的数字

 *  *  *  *  *  命令
分  时 日 月 周
 0  4  1  1  * 11日早上40 */2 *  *  *2个小时  
 0 23-7/2 * * * 晚上11点到早上7点之间每两个小时
 0 11  4  * 1-3 每个月的4号和每个礼拜的礼拜一到礼拜三的早上112  1  *  *  * echo-server  每天102执行echo-server程序
*/2 *  *  *  * echo-server  每2分钟执行echo-server程序 

执行结果会被发送到root的邮件里,如果不想收到定时任务的信息
You have new mail in /var/spoll/mail/root

可以把输出重定向
  */2 *  *  *  * echo-server > /dev/null 2>&1

企业中使用定时任务,以天为单位对日志进行备份

  1. 书写备份日志的脚本
  2. crontab -e启动定时任务

一般是运维工作人员负责Nginx日志管理。

实际应用:定时任务完成Nginx日志切割

解决方案:定时任务 + shell脚本 ( nginx信号管理 + 日志按日期存储 )
分析思路:
  凌晨00:00:01,把昨天的日志重命名,放在相应的目录下
  再USR1信号控制nginx重新生成新的日志文件

[root@localhost nginx] date -d yesterday 
2018年 12月 13日 星期四 18:47:19 CST
[root@localhost nginx] date -d yesterday +%Y-%m-%d
2018-12-13
#!/bin/bash

LOGPATH=/usr/local/nginx/logs/access.log    # src
BASEPATH=/data/$(date -d yesterday +%Y-%m)  # dst

mkdir -p $BASEPATH  # 以“年月”创建目录

DATE=$(date -d yesterday +%d-%H:%M) # 日-时:分
bak=$BASEPATH/$DATE.access.log

mv $LOGPATH $bak
touch $LOGPATH
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值