LoginSignup
1
1

More than 1 year has passed since last update.

対象のファイルを一気にコピーしてバックアップとるシェルスクリプト

Last updated at Posted at 2021-06-02

タイトル通り設定変更のたびに
バックアップ⇒取れたか確認⇒設定変更
が面倒だからリストにまとめて一気にとる用のメモ
#用意するファイル
①ファイルリストを記載するファイル
 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ディレクトリ」が作成され
親ディレクトリも含めコピーされる

おわり

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1