Linux環境でファイル更新またロールバック

更新作業:
./upgrade.sh filename.ext go
元のファイルは filename.ext.bakを変更する、同じfilename.ext.newをfilename.txtへ変更する。

還元作業:
./upgrade.sh filename.ext back
更新作業の操作と逆にする。
実行コマンド
update.sh+更新ファイルの全パス+パラメータ(go|back)

#!/bin/sh

filename=$1
newfilename=$filename.new
bakfilename=$filename.bak

if [ ! -f $filename ]; then
printf “$filename NOT is exist\n"
exit
fi

function upgrade()
{
if [ -f $newfilename ]; then
mv $filename $bakfilename
mv $newfilename $filename
else
printf “$newfilename NOT is exist\n"
fi
}

function restore()
{
if [ -f $bakfilename ]; then
mv $filename $newfilename
mv $bakfilename $filename
else
printf “$bakfilename NOT is exist\n"
fi
}

if [ “$2" = “go" ]; then
upgrade
elif [ “$2" = “back" ]; then
restore
else
printf “Usage:CMD {path/fn.ext} {go|back} \n"
printf “go – MUST exist the [path/fn.ext.new] \n"
printf “back – MUST exist the [path/fn.ext.bak] \n"
fi

Source

Posted by arkgame