はじめに
この記事は初心者インフラエンジニアが備録的に書いたものです。
ことのあらまし
前回記事でDBバックアップの自動化をしました。
これに伴い、バックアップの保存先にバックアップファイルが量産されていくことになります。
いつまでも古いバックアップファイルを残しておくのはリソースを圧迫するだけなので、古いものを削除していくことが必要になりました。
やりたいこと
1.増えるファイルの数を管理したい
2.スクリプトで自動化したい
スクリプトの中身
1.ディレクトリの中を参照
backuup.sh
#!/bin/bash
FilePath="/var/backup"
ls -t $FilePath | tail -n+5
ディレクトリの中身を更新時間でソート → 5行目から表示
2.n日前より古いファイルを削除
backup.sh
rm `ls -t $FilePath | tail -n+5`
5行目から削除
3.実行結果をログに出す
backup.sh
for filename in $FilePath ; do
echo $filename
done >> backup.log
1,2を&&とかで繋ぐといい感じになりそう。
まとめ
・スクリプトでやりたいことを明確にする
・全部を一気に書くのではなく、部分的に作っていく
・ログ出力は大切