はじめに
こちらではshellscriptをつかってのディレクトリのバックアップについての説明をしていきたいと思います。
といっても特定のディレクトリを別のディレクトリにタイムスタンプで保存し、間隔をあけループさせるといシンプルなものになります。
環境
vagrant
Debian10
内容
上記したとうりになるので具体的にコードを書いていきます
設定ファイルを読み込む
※設定ファイルは同階層であることを前提とします
↓
間隔が設定されていることを確認
↓
設定したディレクトリがあることを確認
↓
設定した保存先のディレクトリがあることを確認
↓
それぞれ確認してOKならループする
backup.sh
#!/bin/sh#cnfの読み込み. ./backup.cnf
#時間が設定されているかの確認。設定されていなければ勝手に設定if["$LOOPTIME"=""];then
LOOPTIME=3500
fi#空文字検査if["$SAUCE"=""];then
echo"Not Setting Directry Sauce"fi#空文字検査if["$AFTER"=""];then
echo"Not Setting Directry After"fi#バックアップしたいディレクトリがあるかの確認if[!-e$BEFOR];then
echo"Not Directry Sauce"exit
fi#バックアップ先のディレクトリがあるかの確認if[!-d$AFTER];then
echo"Not Directry After"exit
fi#ループwhile :
do#設定した時間分だけ待機sleep$LOOPTIME#タイムスタンプ取得TIME=`date'+%y%m%d_%H%M%S'`#コピーコマンドcp-r$SAUCE$AFTER/$TIMEdone
cnfファイル内容
backup.cnf
LOOPTIME= [時間の設定]
SAUCE= [元フォルダ]
AFTER= [保存先フォルダ]
実行結果
backup.cnf
LOOPTIME=3
BEFOR=/home/vagrant/test1
AFTER=/home/vagrant/test2
$ ./bakcup.sh
test2$ ls
200512_080142 200512_082406 200512_082407 200512_082408 200512_082409
まとめ
いかがだったでしょうか
足りない部分があればまた足していきます。