查看: 120|回复: 0

[教程] find命令实例 linux日志定期迁移实现方法

[复制链接]

6

主题

0

回帖

18

积分

技术1级

金币
12
阅读权限
10
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-1-5
发表于 2012-12-25 05:29:40 | 显示全部楼层 |阅读模式
节内容:
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的文件,命令:
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部