Fork me on GitHub

Linux常用Cron脚本

日志文件

每天一个日志文件

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

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

带日期前缀

变量形式

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

直接输出形式

#直接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小时内的文件

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

详解

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天内的文件,如果存在,则删除三天前的文件

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

带日志输出

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

服务器时间校准

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

timeCheck.sh脚本内容如下

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

curl www.baidu.com 

POST

curl -d "param1=value1&param2=value2" www.baidu.com

参数

  • -I 只显示头部信息。

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

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

posted @ 2020-07-08 16:54  秋夜雨巷  阅读(701)  评论(0编辑  收藏  举报