學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

Linux中如何使用find命令進行日志定期轉(zhuǎn)移

時間: 孫勝652 分享

  學(xué)過Linux命令的都知道,find命令可用于查找目錄文件,今天學(xué)習(xí)啦小編要給大家介紹的是如何使用find命令進行Linux日志的定期遷移,有興趣的朋友不妨來了解下吧。

  linux系統(tǒng)中,使用find命令定期遷移linux日志的方法。

  一,find命令格式

  find pathname --options [-exec -print -ok 。。]

  二,find命令參數(shù)

  pathname:find命令查找的目錄路徑

  -print:find命令將匹配的文件輸出到標(biāo)準輸出

  -exec:find命令對匹配的文件執(zhí)行該參數(shù)給出的shell命令。格式為: command {} \;

  -ok:類似與exec的作用

  三,find命令選項

  -name:按照文件名進行查找

  -perm:按文件權(quán)限來查找

  -user:按文件的用戶主查找

  -group:按文件的用戶組查找

  -type:查找某一類型的文件

  b -- 塊設(shè)備文件

  d -- 目錄

  c -- 字符設(shè)備文件

  p -- 管道文件

  l -- 符號鏈接文件

  f -- 普通文件

  -mtime:按照文件的更改時間來查找文件

  -n -- 表示文件更改時間距現(xiàn)在n天以內(nèi)

  +n -- 表示文件更改時間距現(xiàn)在n天以前

  四,日志遷移腳本

  使用了find命令的mtime參數(shù),將2個星期前的日志文件統(tǒng)一遷移到指定目錄下。

  代碼如下:

  #!/bin/bash

  # site: 《a href=“http://www.jb51.net”》www.jb51.net《/a》

  #1.標(biāo)準定義

  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.遷移備份,每兩周執(zhí)行一次

  if [ $flag -eq 1 ];then

  for dir in ${clean_dir[*]}

  do

  if [ -d $dir ]; then

  #構(gòu)建遷移目錄

  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每兩周執(zhí)行日志遷移腳本

  代碼如下:

  #日志定期遷移腳本

  0 4 * * 7/2 /home/wangzhengyi/scripts/clean-scripts/migrate.sh

  按文件大小查找

  find命令的size參數(shù)可以按照文件大小進行查找,size的大小選項如下:

  上面就是使用Linux中find命令進行日志定期轉(zhuǎn)移的方法,其實find命令的用法還有很多,巧妙運用可解決不少實際問題,你學(xué)會了嗎?

310747