寫在開頭:
為了寫博客而寫博客,寫一個定時清理日志流程,順便復習一些linux命令
”知其然,不需要知其所以然“
反正就是一個到處復制粘貼大雜燴
流程:
0.查看磁盤占用情況
為什么要清理日志文件呢
因為寫入日志一直在新增,會占據很多磁盤,早晚會爆炸的,所以要定時清理
所以先看看磁盤占用情況
命令:
# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 8.6G 6.7G 1.5G 82% /
tmpfs 250M 76K 250M 1% /dev/shm
/dev/sda1 291M 33M 244M 12% /boot
/dev/sr0 1.5G 1.5G 0 100% /media/Ubuntu 16.04 LTS i386
解釋:
Used:已經使用的空間
Avail:可以使用的空間
Mounted on:掛載的目錄
關於掛載,也理解了好久哦,反正就是Linux“一切皆文件”!
1.寫一個shell腳本(.sh)
寫入命令:
vi cleanlog.sh
i 切換到輸入模式,以輸入字符。
Esc 切換到一般模式
:wq!表示強制保存退出
:q!表示強制不保存退出,不對文件進行保存
腳本內容:
#! /bin/bash
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;
實例命令:
find /usr/local/tomcat/logs/ -mtime +180 -name "*.log" -exec rm -rf {} \;
解釋:
將/usr/local/tomcat/logs目錄下所有180天前帶".log"的文件刪除
參數說明:
#! 是一個約定的標記,它告訴系統這個腳本需要什么解釋器來執行,即使用哪一種 Shell
(bash是shell的一種,還有很多其它shell,如:sh,csh,ksh,tcsh...)
find:linux的查找命令,用戶查找指定條件的文件;
/usr/local/tomcat/logs/ /opt/soft/log/:想要進行清理的任意目錄;
-mtime:標准語句寫法;
+180:查找180天前的文件,這里用數字代表天數;
".log":希望查找的數據類型,".jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} ; :固定寫法,一對大括號+空格++;
另一個寫法:
rm -rf `find 對應目錄 -type f -mtime +180 -print`
查看腳本內容
more xx.sh
2.給腳本添加權限
命令:
chmod +x ./test.sh #使腳本具有執行權限
./test.sh #執行腳本
實例命令:
chmod +777 cleanlog.sh
解釋:
給cleanlog.sh賦予全部用戶讀寫操作權限,是最大的權限值!
參數說明
r 讀權限read 4
w 寫權限write 2
x 操作權限execute 1
權限數字對應權限組說明:
總共分為4部分
【文件或文件夾】【owner權限】【group權限】【others權限】
【文件是-,文件夾是d】【r/w/x相加】【r/w/x相加】【r/w/x相加】
Linux檔案的基本權限就有九個
分別是owner/group/others三種身份各有自己的read/write/execute權限。
查看文件權限
ll
解釋:
linux下命令“ll”是“ls -l"的別名
3.設置定時任務
查看是否有定時任務
crontab -l
新增調度任務
cronteb -e
腳本內容
SHELL=
PATH=
MAILTO=
HOME=
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 時 日 月 周 |《==============命令行=======================》|
實例
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
MAILTO=chen
HOME=/data/backup
*/5 01-06,13-18 * * * ./userbackup.sh test
解釋:
每天的1點到6點和13點到18點,每隔5分鍾執行命令
參數說明:
SHELL:系統要使用哪個shell
PATH:系統定時任務執行的命令的路徑,不要把這個PATH和系統環境變量認為是一樣,二者沒有關系,在系統環境變量里面配置的路徑在這里不能生效。
MAILTO:用來接收郵件的用戶,默認是root,郵箱的內容會保存在"/var/spool/mail/root"文件中。
HOME:系統定時任務的家目錄。