Linux常用Cron脚本

## 日志文件

### 每天一个日志文件

“`bash
#根据日期生成文件名可变部分
LogNameDATE=`date ‘+%Y%m%d’`

#将内容写入每日文件
echo “日志内容” >> log_$LogNameDATE.log
“`

### 带日期前缀

变量形式

“`bash
#日期变量date前缀
date=`date +”%Y-%m-%d %H:%M:%S”`
echo $date “:日志内容” >> log.log
“`

直接输出形式

“`bash
#直接echo到文件,日期与日志内容间存在\n换行
echo -e `date ‘+%Y-%m-%d %H:%M:%S %A’` “\n日志内容 ” >> log.log
#同上,简化版。
echo -e `date ‘+%F %T %A’` “\n日志内容! ” >> log.log

#输出到以日期格式文件名
echo -e $(date) “\n日志内容! ” >> log_`date +’%Y-%m-%d’`.log
echo -e $(date ‘+%Y-%m-%d %H:%M:%S %A’) “\n日志内容! ” >> log_`date +’%Y-%m-%d’`.log
“`

## 查询3小时内的文件

“`bash
#查找当前文件夹3小时内的非文件夹类型的文件
find . -cmin -180 -name ‘*.log’ -exec ls -lrt {} \; | grep -v ‘^d’
“`

详解

“`bash
find . -cmin -420 -name ‘*.log’ #查询七小时内当前文件夹的所有文件,这里的*代表全部,可以用*.txt等等过滤。

-exec ls -lrt {} \; #把前面find的结果作为输入给ls命令,占位符为{},l为显示长信息,t表示按时间排序,r表示倒序。

grep -v ‘^d’ #过滤掉以d开头的记录,^表示开头的正则表达式,-v表示invert-match过滤掉匹配的记录。ls -l查询出的文件夹都以d开头。和find中用-type f参数一个效果
“`

## 自动删除三天前备份文件

先判断是否存在3天内的文件,如果存在,则删除三天前的文件

“`bash
if find /dbbackup -mtime -3 -name ‘*.sql’ -exec ls -lrt {} \; | grep -v ‘^d’ >/dev/null
then
find /dbbackup -type f -mtime +3 -name “*.sql” -exec rm -rf {} \;
else
echo “delete fail”;
fi
“`

带日志输出

“`bash
echo -e `date ‘+%Y-%m-%d %H:%M:%S %A’` ” 开始删除备份文件。。。” >> autoDelDBbackup.log
if find /db_backup -mtime -3 -name ‘*.zip’ -exec ls -lrt {} \; | grep -v ‘^d’ >/dev/null
then
find /db_backup -type f -mtime +3 -name “*.zip” -exec echo {} \; >> autoDelDBbackup.log
find /db_backup -type f -mtime +3 -name “*.zip” -exec rm -rf {} \;
echo -e `date ‘+%Y-%m-%d %H:%M:%S’` “备份删除成功” >> autoDelDBbackup.log
else
echo `date ‘+%Y-%m-%d %H:%M:%S’` “近三天无备份文件,不执行删除操作!!! ” >> autoDelDBbackup.log
fi
“`

## 服务器时间校准

“`bash
#给crontab添加任务
crontab -e
#每天凌晨1点执行一次bash脚本
0 1 * * * /root/timeCheck.sh
“`

timeCheck.sh脚本内容如下

“`bash
echo “——————————————————” >> timeAdjustLog.log;
echo -e $(date ‘+%Y-%m-%d %H:%M:%S %A’) “开始执行时间校准脚本! ” >> timeAdjustLog.log;
/usr/sbin/ntpdate -u ntp.ntsc.ac.cn >> timeAdjustLog.log;
echo -e “执行时间校准完毕! 校准后时间:” $(date ‘+%Y-%m-%d %H:%M:%S %A’) >> timeAdjustLog.log;
“`

## Http发送数据

### GET

“`bash
curl www.baidu.com
“`

### POST

“`bash
curl -d “param1=value1&param2=value2” www.baidu.com
“`

### 参数

– -I 只显示头部信息。

– -i 显示全部信息,包括头信息和正文。

– -v 显示解析全过程,解析过程,头信息和正文。

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *