diff options
Diffstat (limited to 'src/tool/backup')
-rw-r--r-- | src/tool/backup | 200 |
1 files changed, 100 insertions, 100 deletions
diff --git a/src/tool/backup b/src/tool/backup index 2b5a95814..939c7eee7 100644 --- a/src/tool/backup +++ b/src/tool/backup @@ -1,100 +1,100 @@ -#!/usr/bin/perl
-
-##########################################################################
-# Athena用データバックアップツール
-#
-# Athenaの各種データファイル*.txtをバックアップするツール
-#
-#-------------------------------------------------------------------------
-# 設定方法
-# 実行する時のカレントフォルダからのデータへのパス、ファイルのリストを
-# 正しく設定します。バックアップ先のフォルダは自動作成されないので、
-# 自分で作成しておく必要があります。
-# フォルダの最後の「/」は省略できません。
-#
-# フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/
-# フォルダの最後の「/」は省略できません。
-#
-# 実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を
-# つけてファイルをコピーします。
-#
-# * toolフォルダ内にbackup_dataフォルダを作成し、
-# athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」
-# という行を追加すると、athenaを起動するたびにバックアップが取れます
-#
-# 復元するときは引数に「-r 日付と時刻」を指定します。
-# またその後ろにフォルダを指定することも出来ます
-# 例1> ./backup -r 200309191607
-# 例2> ./backup -r 200309191607 ../save ./backup_data/
-# この例では2003/09/19の16:07分にバックアップしたデータを復元しています
-#
-# 復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して
-# 残しているので、いらない場合は rm *.bak などで消してください。
-#
-##########################################################################
-
-$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/)
-$tdir="./backup_data/"; #バックアップ先
-
-@files=( #ファイルのリスト
- "account","athena","storage","party","guild","castle","pet"
-);
-
-
-#-------------------------------設定ここまで-----------------------------
-
-
-
-
-
-
-
-
-
-
-
-if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){
- #復元処理
-
- $file=$ARGV[1];
- $sdir=$ARGV[2]||$sdir;
- $tdir=$ARGV[3]||$tdir;
- &restorecopy($_) foreach @files;
- exit(0);
-}
-
-#バックアップ処理
-$sdir=$ARGV[0]||$sdir;
-$tdir=$ARGV[1]||$tdir;
-
-unless( -d $tdir ){
- print "$0: \"$tdir\" : No such directory\n";
- exit(1);
-}
-
-(undef,$min,$hour,$day,$month,$year)=localtime;
-
-$file=sprintf("%04d%02d%02d%02d%02d",
- $year+1900, $month+1, $day, $hour, $min );
-
-&backupcopy($_) foreach @files;
-exit(0);
-
-sub backupcopy {
- my($name)= @_;
- system("cp $sdir$name.txt $tdir$name$file.txt");
-}
-
-sub restorecopy {
- my($name)= @_;
- unless( -f "$sdir$name.txt" ){
- printf("$0: \"$sdir$name.txt\" not found!\n");
- return 0;
- }
- unless( -f "$tdir$name$file.txt" ){
- printf("$0: \"$tdir$name$file.txt\" not found!\n");
- return 0;
- }
- rename "$sdir$name.txt","$sdir$name.bak";
- system("cp $tdir$name$file.txt $sdir$name.txt");
-}
+#!/usr/bin/perl + +########################################################################## +# Athena用データバックアップツール +# +# Athenaの各種データファイル*.txtをバックアップするツール +# +#------------------------------------------------------------------------- +# 設定方法 +# 実行する時のカレントフォルダからのデータへのパス、ファイルのリストを +# 正しく設定します。バックアップ先のフォルダは自動作成されないので、 +# 自分で作成しておく必要があります。 +# フォルダの最後の「/」は省略できません。 +# +# フォルダは引数でも指定できます。例>./backup ../save/ ./backup_data/ +# フォルダの最後の「/」は省略できません。 +# +# 実行するとバックアップ先のフォルダへ、ファイル名に現在の日付と時刻を +# つけてファイルをコピーします。 +# +# * toolフォルダ内にbackup_dataフォルダを作成し、 +# athena.shの中に「./tool/backup ./save/ ./tool/backup_data/」 +# という行を追加すると、athenaを起動するたびにバックアップが取れます +# +# 復元するときは引数に「-r 日付と時刻」を指定します。 +# またその後ろにフォルダを指定することも出来ます +# 例1> ./backup -r 200309191607 +# 例2> ./backup -r 200309191607 ../save ./backup_data/ +# この例では2003/09/19の16:07分にバックアップしたデータを復元しています +# +# 復元するとき、Athenaディレクトリにあるデータは *.bak に名前を変更して +# 残しているので、いらない場合は rm *.bak などで消してください。 +# +########################################################################## + +$sdir="../save/"; #バックアップ元(Athenaのディレクトリ/save/) +$tdir="./backup_data/"; #バックアップ先 + +@files=( #ファイルのリスト + "account","athena","storage","party","guild","castle","pet" +); + + +#-------------------------------設定ここまで----------------------------- + + + + + + + + + + + +if($ARGV[0]=~/^\-r$/i || $ARGV[0]=~/\-\-(recover|restore)/i){ + #復元処理 + + $file=$ARGV[1]; + $sdir=$ARGV[2]||$sdir; + $tdir=$ARGV[3]||$tdir; + &restorecopy($_) foreach @files; + exit(0); +} + +#バックアップ処理 +$sdir=$ARGV[0]||$sdir; +$tdir=$ARGV[1]||$tdir; + +unless( -d $tdir ){ + print "$0: \"$tdir\" : No such directory\n"; + exit(1); +} + +(undef,$min,$hour,$day,$month,$year)=localtime; + +$file=sprintf("%04d%02d%02d%02d%02d", + $year+1900, $month+1, $day, $hour, $min ); + +&backupcopy($_) foreach @files; +exit(0); + +sub backupcopy { + my($name)= @_; + system("cp $sdir$name.txt $tdir$name$file.txt"); +} + +sub restorecopy { + my($name)= @_; + unless( -f "$sdir$name.txt" ){ + printf("$0: \"$sdir$name.txt\" not found!\n"); + return 0; + } + unless( -f "$tdir$name$file.txt" ){ + printf("$0: \"$tdir$name$file.txt\" not found!\n"); + return 0; + } + rename "$sdir$name.txt","$sdir$name.bak"; + system("cp $tdir$name$file.txt $sdir$name.txt"); +} |