文章目录
一、删除指定时间文件命令:
将/data/lydms-util-sms/logs/
目录下所有30天前带.log
的文件删除
find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
“*.log”:希望查找的数据类型,"*.log"
表示查找扩展名为jpg的所有文件.
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; 固定写法,一对大括号+空格++;
二、计划任务:
1、创建shell文件
创建可执行shell文件
touch /data/shell/bin/del-30-days-ago-log.sh
添加文件可运行权限
chmod +x /data/shell/bin/del-30-days-ago-log.sh
2、shell文件中添加脚本
vim /data/shell/bin/del-30-days-ago-log.sh
打开创建的文件后,添加下面的数据。
#!/bin/sh
find /data/lydms-util-sms/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
3、添加系统计划任务:
打开系统定时任务文件
crontab -e
将shell文件,添加到系统定时任务中
0 0 * * * /data/shell/bin/del-30-days-ago-log.sh
4、实现秒级调度
因为Linux系统自带的corn最多只能实现分钟级调度,也就是最少间隔为1分钟,
基本思路就是每分钟调度一次shell任务insert_sql.sh
。然后insert_sql.sh
任务执行59次,每次休眠1S。
crontab
中调度配置
crontab -e
* * * * * /home/mysql/insert_sql.sh
insert_sql.sh
脚本内容
for i in {1..59};
do /usr/local/mysql-8.0.28/bin/mysql -uroot -proot csdn < /home/mysql/insert.sql;
sleep 1;
done
三、可能出现问题
1、超过运行时间,没有执行
没有将.sh
文件设置为可执行文件
添加文件可运行权限
chmod +x /data/shell/bin/del-30-days-ago-log.sh
2、保存系统定时任务文件出现问题
(1)、空格问题
多一个空格,或者少一个空格。
(2)、corn表达式问题
采用5位corn表达式。
# 文件格式說明
# ——分鐘(0 - 59)
# | ——小時(0 - 23)
# | | ——日(1 - 31)
# | | | ——月(1 - 12)
# | | | | ——星期(0 - 7,星期日=0或7)
# | | | | |
# * * * * * 被執行的命令
从第一个开始分别为分、时、日、月、星期。