磁盘空间满了处理办法

320 阅读1分钟

磁盘空间满了处理办法

需求:数据盘快满了,需要挪到另外一个目录下data下面,但是由于业务需求问题,不能改变原有的数据路径需要怎么处理,可以将文件数据挪到新的目录,然后将挪走的目录软连接到之前的路径即可。如果业务数据在云上,可以直接扩容磁盘,这次的方法是物理机上磁盘容量满了,新挂载的磁盘,在不影响原业务的使用情况下,数据路径不变的一种办法

  • main() 返回下面结果的日志输出

  • find $dir -maxdepth 1  -type d -mtime -365 查找目录 -maxdepth 1 指定目录深度为1层,-type d 指定类型为目录 -mtime +365 指定日期为365天前创建的日期

  • rsync -aR $dir2/  /data/ 使用rsync命令把数据移动到/data/目录下

  • if [ $? -eq 0 ] 判断输出结果是否正常,-eq 等于的意思,0为正常,其他为不正常

  • ln -s /data/dir2 /usr/local/src/shell/dir2  /usr/local/src/shell/dir2  && echo "/usr/local/src/shell/$dir2成功创建软链接" 创建目录的软连接

  • main &> /tmp/move_old_data_date +%F.log 生成以当前时间的日志文件

#!/bin/bash
main()
{
cd  /usr/local/src/shell/
for dir in `ls`
do
    for dir2 in `find $dir -maxdepth 1  -type d -mtime +365`
    do
        rsync -aR $dir2/  /data/
        if [ $? -eq 0 ]
        then
            rm -rf $dir2
            echo "/usr/local/src/shell/$dir2 移动成功"
            ln -s /data/$dir2  /usr/local/src/shell/$dir2  && echo "/usr/local/src/shell/$dir2成功创建软链接"
            echo
        else
            echo "/usr/local/src/shell/$dir 未移动成功"
        fi
    done
done
}
main &> /tmp/move_old_data_`date +%F`.log