linux中怎么利用find命令實(shí)現日志定期遷移,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細講解,有這方面需求的人可以來(lái)學(xué)習下,希望你能有所收獲。
一,find命令格式
find pathname --options [-exec -print -ok ..]
二,find命令參數
pathname:find命令查找的目錄路徑
-print:find命令將匹配的文件輸出到標準輸出
-exec:find命令對匹配的文件執行該參數給出的shell命令.格式為: command {} \;
-ok:類(lèi)似與exec的作用
三,find命令選項
-name:按照文件名進(jìn)行查找
-perm:按文件權限來(lái)查找
-user:按文件的用戶(hù)主查找
-group:按文件的用戶(hù)組查找
-type:查找某一類(lèi)型的文件
b -- 塊設備文件
d -- 目錄
c -- 字符設備文件
p -- 管道文件
l -- 符號鏈接文件
f -- 普通文件
-mtime:按照文件的更改時(shí)間來(lái)查找文件
-n -- 表示文件更改時(shí)間距現在n天以?xún)?nbsp;
+n -- 表示文件更改時(shí)間距現在n天以前
四,日志遷移腳本
使用了find命令的mtime參數,將2個(gè)星期前的日志文件統一遷移到指定目錄下。
代碼如下:
#!/bin/bash
# site: <a href="https://www.yisu.com">www.yisu.com</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.遷移備份,每?jì)芍軋绦幸淮?
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每?jì)芍軋绦腥罩具w移腳本
代碼如下:
#日志定期遷移腳本
0 4 * * 7/2 /home/wangzhengyi/scripts/clean-scripts/migrate.sh
按文件大小查找
find命令的size參數可以按照文件大小進(jìn)行查找,size的大小選項如下:
例如,查找指定目錄下大于10k的文件,命令:
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站