解决Centos7下crontab+shell脚本定期⾃动删除⽂件问题问题描述:
最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak⽂件
保留7天就够了,所以需要⾃动清理⽂件夹内的bak⽂件
解决⽅案:
利⽤shell脚本来定期删除⽂件夹内的任务
1、创建shell⽂件
[root@zabbix script]# vim backup_sql_clean.sh
#!/bin/sh
find /data1/backup/KDKDA\$AGKDPAYKT/XNAKSD/FXUIJ -mtime +10 -name "*.bak" -exec rm -rf {} \;
参数说明:
/data1/backup/KDKDA\$AGKDPAYKT/XNAKSD/FXUIJ  #这个是⽂件的路径path
-
mtime +10 #这个是保留的天数,10就是10天
-name "*.bak"  #这个是要删除⽂件的名称,这边加后缀就是删除这个类型的⽂件
其他的是Linux的命令
2、设置shell⽂件权限
[root@zabbix script]# chown 777 backup_sql_clean.sh
3、设置crontab周期执⾏
crontab命令⽤于设置周期性被执⾏的指令
[root@zabbix /]# crontab -e
0 0 * * 7 /data/script/backup_sql_clean.sh
4、启动crond进程
crond的概念和crontab是不可分割的。crontab是⼀个命令,常见于Unix和类Unix的操作系统之中,⽤于设置周期性被执⾏的指令。
该命令从标准输⼊设备读取指令,并将其存放于“crontab”⽂件中,以供之后读取和执⾏。⽽crond正是它的守护进程。[root@zabbix /]# systemctl status crond.service #查看crond状态
[root@zabbix /]# systemctl start crond.service #启动crond服务
[root@zabbix /]# systemctl restart crond.service #重启crond服务
补充;
下⾯介绍下centOS7定时删除⽂件
1、进⼊linux系统
2、在任意⽬录创建⼀个sh后缀的⽂件,如:
3、编辑打开该⽂件,如图:
4、此时按键盘上的“i”键或者“insert”键,进⼊编辑模式
输⼊:
#!/bin/sh
find /data/iqmkj/backup/mysql -mtime +7 -name "*.sql" -exec rm -rf {} \;
如图:
说明:
“/data/iqmkj/backup/mysql” :要删除的⽂件所在的⽬录。
“+7” :⽂件保留天数,即⼏天前的⽂件将被删除。
“*.sql”:删除⽂件后缀为.sql的⽂件。
其他为固定字符。
5:保存编辑的⽂件
按⼀下键盘上的“esc”键,再在当前窗⼝输⼊":wq"。⽂件即保存成功并⾃动退回到主界⾯。
6、给⽂件授权
输⼊:
chown 777 backup_mysql.sh
如果授权不成功,则直接选中该⽂件右键设置权限中全部勾选或者设置“777”。
7:利⽤centos7的定时任务创建⼀个定时器
在主界⾯输⼊”crontab -e”,进⼊定时任务编辑界⾯。
8、设置定时任务
插⼊“0 4 * * * /data/iqmkj/backup/mysql/backup_mysql_clean.sh”。
说明:
其中的⽂件路径为第⼆步中创建的⽂件路径。
9、保存定时任务配置
按⼀下键盘上的“esc”键,再在当前窗⼝输⼊":wq"。⽂件即保存成功并⾃动退回到主界⾯。
10、启动定时器
在主界⾯输⼊“/bin/systemctl start crond.service”。⾄此全部配置完成。
说明:
启动定时任务:/bin/systemctl start crond.service
停⽌定时任务:/bin/systemctl stop crond.service
重启定时任务:/bin/systemctl restart crond.service
查看定时任务状态:/bin/systemctl status crond.service
centos vim命令总结
以上所述是⼩编给⼤家介绍的解决Centos7下crontab+shell脚本定期⾃动删除⽂件问题,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。