Shellタイミングで指定時間前のファイルを削除します。
最近ワールドカップが来ました。仕事とワールドカップの間で忙しくて、私のブログを管理する時間がなくなりました。今日は簡単なshellしかみんなにあげられません。会社は一ヶ月前のバックアップファイルを削除するように要求しています。ハードディスクを爆発させないように、サーバーに確認したら、なんと三ヶ月のバックアップがありました。sqlバックアップです。でないと、ハードディスクのスペースはとっくにいっぱいです。
以下は私の解決方法です。
locationは検索を設定するディレクトリです。
--mtime+30は設定時間が30日前です。
-type f今週検索するタイプはファイルです。
次にcrontabに加入してタイミングよく削除します。
同じ削除方法:
以下は私の解決方法です。
cat delbak.sh
#!/bin/sh
location="/root/sqlbak/"
find $location -mtime +30 -type f |xargs rm -f
ps:locationは検索を設定するディレクトリです。
--mtime+30は設定時間が30日前です。
-type f今週検索するタイプはファイルです。
次にcrontabに加入してタイミングよく削除します。
crontab -l
10 4 1 * * /bin/sh /root/soft_shell/delbak.sh
毎月1日夜4時10分にスクリプトを実行するという設定です。もちろん、あなた自身のニーズに合わせて調整してもいいです。同じ削除方法:
find /root/sqlbak -mtime +30 -type f -name *.gz -exec rm -f {} \;