タイトル通り設定変更のたびに
バックアップ⇒取れたか確認⇒設定変更
が面倒だからリストにまとめて一気にとる用のメモ
#用意するファイル
①ファイルリストを記載するファイル
fileslist.txt
※端末で作成するときは改行コードでエラー起こすため注意(改行コードを「LF(UNIX)」に変更して保存)
②シェルスクリプト
getfile.sh
下記のように配置
/どこでも好きなディレクトリ/
┣ getfile.sh
┗ fileslist.txt
私はいつも/tmp/getfile/を作ってそこに入れてる
#ファイルの中身
getfile.sh
#!/bin/sh/
#取得したいファイルをfileslist.txtに記載し、
#getfiles.shと同じディレクトリに格納する
FILELIST=fileslist.txt
#ディレクトを作成
BKDIR=./`uname -n `_`date +%Y%m%d_%H%M`/
if [ ! -d $BKDIR ]; then
mkdir $BKDIR
fi
while read line
do
if [ -f $line ]; then
cp --parents $line $BKDIR
RES=$?
if [ $RES -eq 0 ]; then
echo $line SUCCESS
else
echo $line FAILED
fi
else
echo $line SKIP
fi
done < $FILELIST
fileslist.txt(取りたいファイルをフルパスで記載)
/etc/hosts
/etc/logrotate.conf
/etc/group
/etc/passwd
#実行方法
シェルスクリプトを格納したディレクトリに移動しgetfile.sh実行
特に権限とかも気にしてないのでshコマンドで実行
# cd /格納ディレクトリ/
# sh getfile.sh
/etc/hosts SUCCESS
/etc/logrotate.conf SUCCESS
/etc/group SUCCESS
/etc/passwd SUCCESS
コピーできていれば「SUCCESS」
ファイルが見つからない場合は「SKIP」
上記どちらでもない場合は「FAILED」と表示される
#実行後
カレントディレクトリに
「ホスト名_YYYYMMDD_HHMMディレクトリ」が作成され
親ディレクトリも含めコピーされる
おわり