歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux維護 >> Linux中如何使用find命令進行日志定期轉移

Linux中如何使用find命令進行日志定期轉移

日期:2017/3/2 10:34:57   编辑:Linux維護

學過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命令的用法還有很多,巧妙運用可解決不少實際問題,你學會了嗎?

Copyright © Linux教程網 All Rights Reserved