TeamSpeak 3 サーバをバックアップする
TeamSpeak 3 サーバをバックアップする
Discordに喰われつつあるTeamSpeak 3のバックアップに関する記事です。
自分がよく手順を忘れるので備忘録がてら投稿します。
注意点
- 本記事はLinux版のTeamSpeak 3 サーバを対象としています。
- 本記事におけるバックアップ方法は所謂フルバックアップです。
バックアップ対象となるファイル
- logs/*
- files/*
- licensekey.dat
- query_ip_whitelist.txt
- query_ip_blacklist.txt
- ts3server.sqlitedb
運用方法によっては不要なものもあるので各自取捨選択してください。
TSDNSを使用している方は設定ファイルも対象に含めておきましょう。
バックアップ手順
下記条件を前提に記述します。
- TeamSpeak 3 サーバは
/opt/teamspeak3-server/
に設置。 - バックアップファイルの名称は
ts3server_backup.tar.bz2
とする。
-
TeamSpeak 3 サーバを停止する。
# cd /opt/ # ./teamspeak3-server/ts3server_startscript.sh stop
-
バックアップ対象となるファイルの圧縮およびアーカイブ化する。
# tar -jcvf ts3server_backup.tar.bz2 \ teamspeak3-server/logs/ \ teamspeak3-server/files/ \ teamspeak3-server/licensekey.dat \ teamspeak3-server/query_ip_whitelist.txt \ teamspeak3-server/query_ip_blacklist.txt \ teamspeak3-server/ts3server.sqlitedb
おしまい。
毎回コピペするの面倒なんだけど
上記バックアップ手順を少しいじってスクリプト化。
ts3server.sqlitedb
の更新タイムスタンプをバックアップファイルの名称にします。
マサカリ大歓迎です。
ts3server_backupscript.sh
#!/bin/bash
# アーカイブ保存先ディレクトリを入力
DST_DIR=""
# TeamSpeak 3 サーバ格納ディレクトリを入力
SERVER_PATH=""
# アーカイブ対象のファイルおよびディレクトリをスペース区切りで入力
target=("files/" "logs/" "query_ip_blacklist.txt" "query_ip_whitelist.txt" "ts3server.sqlitedb")
# アーカイブ保存先ディレクトリの存在確認
if [ ! -d "$DST_DIR" ]; then
echo "Directory not found. ($DST_DIR)"
exit 1
fi
# TeamSpeak 3 サーバ格納ディレクトリの存在確認
if [ ! -d "$SERVER_PATH" ]; then
echo "Directory not found. ($SERVER_PATH)"
exit 1
fi
# pidファイルの存在確認 (ファイルが存在する場合は処理を行わない)
if [ -e "${SERVER_PATH%/}/ts3server.pid" ]; then
echo "TeamSpeak 3 server is running, Please stop server first."
exit 1
fi
# ts3server.sqlitedbの更新タイムスタンプを取得 (アーカイブファイル名に使用)
db_file="${SERVER_PATH%/}/ts3server.sqlitedb"
file_name=$(stat -c "%Y" "$db_file") > /dev/null
if [ $? != 0 ]; then
echo "Cannot get timestamp. ($db_file)"
exit 1
fi
# アーカイブファイルの存在確認 (ファイルが存在する場合は処理を行わない)
dst_file="${DST_DIR%/}/$file_name.tar.bz2"
if [ -e "$dst_file" ]; then
echo "Backup file already exists. ($dst_file)"
exit 1
fi
# ライセンスキーが存在する場合はアーカイブ対象に追加
if [ -e "${SERVER_PATH%/}/licensekey.dat" ]; then
target+=("licensekey.dat")
fi
# アーカイブファイルの作成
for ((i = 0; i < ${#target[@]}; i++)); do
target[i]=$(basename "$SERVER_PATH")/${target[i]}
done
tar -jcf "$dst_file" -C "$(dirname $SERVER_PATH)" "${target[@]}" > /dev/null
if [ $? != 0 ]; then
echo "Cannot create backup file."
rm -f "$dst_file"
exit 1
else
echo "Backup completed. ($dst_file)"
fi
exit 0
さいごに
TeamSpeak 5っていつリリースするんですか?
参考資料
- I want to move my server to another machine, which files should I copy? – TeamSpeak
-
TeamSpeak3 サーバのアップデート方法 - 死者のページ
- 手順を忘れる度に思い出させてくれたページ。著者のharu_arcさんに多謝!
Author And Source
この問題について(TeamSpeak 3 サーバをバックアップする), 我々は、より多くの情報をここで見つけました https://qiita.com/Solaria/items/8e88bafef6672fcb47ac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .