linux 設置定時任務執行清理日志腳本


寫在開頭:

為了寫博客而寫博客,寫一個定時清理日志流程,順便復習一些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:系統定時任務的家目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM