原文鏈接:https://blog.csdn.net/qq_37936542/article/details/78788466
需求:最近公司服務器發現磁盤經常會被占滿,查其原因是因為大量的日志文件。所有需要每天定時去清理過期的日志文件
一:編寫腳本
- [root@localhost home]# vim clean_catalina.sh
添加內容如下:
- # 刪除 /opt/java/tomcat7/logs/下5天前,文件名稱包含"201"的logs
- find /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;
- # 清空 /opt/java/tomcat7/logs/下的catalina.out
- echo " " > /opt/java/tomcat7/logs/catalina.out
二:設置定時執行clean_catalina.sh腳本
- [root@localhost home]# crontab -e
添加內容如下:
- 10 0 * * * /home/clean_catalina.sh
三:使用 crontab -l 命令查看是否設置成功
- [root@localhost home]# crontab -l
- 10 0 * * * /home/clean_catalina.sh
詳解 crontab 和 find 命令
=======
crontab
=======
通過crontab可以設定程序的執行時間表,例如讓程序在每天的8點,或者每個星期一的10點執行一次。
crontab -l 列出時間表;
crontab -e編輯時間表;
crontab -d刪除時間表;
“-l”沒什么可說的,就是一個查看而已;
“-e”是編輯,和vi沒什么差別(其實就是用vi編輯一個特定文件);
“-d”基本不用,因為它把該用戶所有的時間表都刪除了,一般都是用“-e”編輯把不要了的時間表逐行刪除;
那到底該如何編輯呢?
crontab文件的格式是:M H D m d CMD。
一個6個字段,其中最后一個CMD就是所要執行的程序,如haha.sh。
M:分鍾(0-59)
H:小時(0-23)
D:日期(1-31)
m:月份(1-12)
d:一個星期中的某天(0-6,0代表周日)
這5個時間字段用空格隔開,其值可以是一個數字,也可以用逗號隔開的多個數字(或其他) ,如果不需設置,則默認為“*”。
例如,每天的8點5分執行haha.sh,就是“5 8 * * * /opt/./haha.sh”。
=======
find
=======
基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf #在根目錄下查找文件httpd.conf,表示在整個硬盤查找
(2)find /etc -name httpd.conf #在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*' #使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm*' #表示當前目錄下查找文件名開頭是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10 # 查找在系統中最后10分鍾訪問的文件(access time)
(2)find / -atime -2 # 查找在系統中最后48小時訪問的文件
(3)find / -empty # 查找在系統中為空的文件或者文件夾
(4)find / -group cat # 查找在系統中屬於 group為cat的文件
(5)find / -mmin -5 # 查找在系統中最后5分鍾里修改過的文件(modify time)
(6)find / -mtime -1 #查找在系統中最后24小時里修改過的文件
(7)find / -user fred #查找在系統中屬於fred這個用戶的文件
(8)find / -size +10000c #查找出大於10000000字節的文件(c:字節,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的文件
3.可以對查找到的文件在進行操作
-exec command;
查找並執行命令
-fprint file
打印文件完整文件名
-fprintf file format
打印文件格式
-ok command;
給用戶命令執行操作,根據用戶的Y 確認輸入執行
-ls
打印同種文件格式的文件.
例如:
find / -name "*xxx*" -ls
查找根目錄下名稱包含xxx的文件並顯示信息
find /opt/java/tomcat7/logs/ -mtime +5 -name "*201?*" -exec rm -rf {} \;
查找出符合條件的日志文件並刪除
文末福利:
福利一:前端,Java,產品經理,微信小程序,Python等10G資源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入門與實戰全套詳細視頻教程
【領取方法】
關注 【編程微刊】微信公眾號:
回復【小程序demo】一鍵領取130個微信小程序源碼demo資源。
回復【領取資源】一鍵領取前端,Java,產品經理,微信小程序,Python等資源合集10G資源大放送。

90后前端妹子,愛編程,愛運營,愛折騰。
堅持總結工作中遇到的技術問題,堅持記錄工作中所所思所見,歡迎大家一起探討交流。