Linux中使用find命令進行日志定期轉移解決方法
學過Linux命令的都知道,find命令可用於查找目錄文件,今天小編要給大傢介紹的是如何使用find命令進行Linux日志的定期遷移,有興趣的朋友不妨來瞭解下吧。
linux系統中,使用find命令定期遷移linux日志的方法。
一,find命令格式
find pathname –options [-exec -print -ok 。。]
二,find命令參數
pathname:find命令查找的目錄路徑
-print:find命令將匹配的文件輸出到標準輸出
-exec:find命令對匹配的文件執行該參數給出的shell命令。格式為: command {} \;
-ok:類似與exec的作用
三,find命令選項
-name:按照文件名進行查找
-perm:按文件權限來查找
-user:按文件的用戶主查找
-group:按文件的用戶組查找
-type:查找某一類型的文件
b — 塊設備文件
d — 目錄
c — 字符設備文件
p — 管道文件
l — 符號鏈接文件
f — 普通文件
-mtime:按照文件的更改時間來查找文件
-n — 表示文件更改時間距現在n天以內
+n — 表示文件更改時間距現在n天以前
四,日志遷移腳本
使用瞭find命令的mtime參數,將2個星期前的日志文件統一遷移到指定目錄下。
代碼如下:
#!/bin/bash
# site: 《a href=“http://www.jb51.net”》www.jb51.net《/a》
#1.標準定義
backup_dir=“/backup/log”
keep_days=14
week_num=`date +%W`
flag=`expr $week_num % 2`
#2.需要遷移目錄
test1=“/var/log/nginx/test1”
migrate_dir=($test1)
#3.遷移備份,每兩周執行一次
if [ $flag -eq 1 ];then
for dir in ${clean_dir[*]}
do
if [ -d $dir ]; then
#構建遷移目錄
if [ ! -d $backup_dir$dir ];then
mkdir -p $backup_dir$dir
fi
#文件遷移
for file in `find $dir -type f -mtime +$keep_days -exec ls {} \;`
do
mv $file $backup_dir$dir
done
fi
done
fi
Crontab每兩周執行日志遷移腳本
代碼如下:
#日志定期遷移腳本
0 4 * * 7/2 /home/wangzhengyi/scripts/clean-scripts/migrate.sh
按文件大小查找
find命令的size參數可以按照文件大小進行查找,size的大小選項如下:
例如,查找指定目錄下大於10k的文件,命令:
上面就是使用Linux中find命令進行日志定期轉移的方法,其實find命令的用法還有很多,巧妙運用可解決不少實際問題,你學會瞭嗎,想瞭解更多內容可以對GuideAH進行關註!
閱讀更多:
- Linux使用Crontab安排日常工作解決方法
- Linux系統使用at/crontab指令解決方法
- Linux系統查找替換非UTF-8編碼文件的解決方法
- Linux系統怎麼查看電腦的磁盤空間?Linux系統查看電腦的磁盤空間步驟
- Linux系統安裝Go語言的步驟