【7Days to die】Linuxサーバー構築-自動再起動/自動バックアップ方法/再起動LINE通知のやり方
2023.08.19更新
サーバー自動再起動/自動バックアップ方法解説/再起動LINE通知
今回は、Linux でマルチサーバーを構築した際に、自動再起動や自動バックアップをさせる方法に関して解説いたします。
サーバーの構築に関してはXserver VPSでLinux Ubuntuを利用した方法となります。
今回は、サーバーの再起動→バックアップ→再起動通知の一連の内容をシステムで組んでしまう方法となります。
再起動通知をLINEに送る方法
サーバーの再起動がされると自動でLINEに通知がくる方法を構築します。(不要な方は省略)
「自動で再起動をかけたい時間に再起動がされているか」
「エラーでサーバーが落ちた際に再起動されているか」
通知がくることでPCを起動してなくても再起動されているかどうかがわかるので少し安心できますのでおすすめです。
LINEに通知がくるようにトークンの発行をする
LINE Notify
https://notify-bot.line.me/ja/
LINE Notifyは連携させることで通知を受信できるようになるLINE公式のサービスとなります。
トークンの発行方法に関しては下記の解説ページがわかりやすいのでご参考ください。
スマートフォンでのLINE Notifyの使用方法( LINEアクセストークンの取得方法 ) | くりのまるまるせいかつ (ameblo.jp)
シェルスクリプト(.sh 拡張子のついたファイル)を作成
Windows標準のメモ帳を開いて、下記の実行コマンドをコピペして貼り付けてください。
「line-notify」という名前でシェルスクリプトの(.sh 拡張子のついたファイル)を作成します。
LINE_ACCESS_TOKEN=”〇〇〇〇〇〇〇“
“ ”の間には先ほど自身で発行したLINE トークンを入力します。
line_notify “IPアドレス: serverを再起動しました”
IPアドレスの部分にはご自身のサーバーIPアドレスを入力してください。
メモ帳で保存する時は名前をつけて保存するで.shをつけて保存します。
作成したシェルスクリプトをサーバーに保存する
「line-notify」のファイルを7days to dieのサーバーファイルに保存します。
WinSCPで/home/sdtdserver の直下にファイルを保存します。
※注意
ファイルをWinSCP側に保存した際に所有者が「root」になっているとファイルが実行されません。
右クリックでプロパティを開き「グループ」「所有者」をstdserverに変更する必要があります。
また、プロパティで所有者の変更を行ったら、同時に「所有者」に対して実行権限を与える必要もあります。
Xの部分に✓を追加します。
R = 読み込み
W = 書き込み
X = 実行権限
となります。
この実行権限がないと、スクリプトファイルの実行がされないです。
テストでLINEに通知が届くか確認
保存したシェアスクリプトをTera Termでファイル実行させます。
下記のようにサーバーの再起動がされると、LINEに通知が確認できたらLINE通知のシェルスクリプトが正常に起動できたことを確認できます。
再起動時に自動バックアップを実行させる方法
バックアップファイルを作成
Tera termで下記コマンドを入力してバックアップ用のディレクトリー(ファイル)を作成します。
Win SCPで/home/sdtdserverの直下に「back up」ディレクトリーが完成します。
定期的にサーバーが起動しているか起動チェックをいれる→エラーで落ちている場合は自動でバックアップを取る
「line-notify」を作成した時同様に「sdtd-chk」のシェルスクリプトを作成して/home/sdtdserverの直下に保存します。※所有者と実行権限を与えることは忘れずに作業します。
このスクリプトは「サーバーがスタート状態でない場合に、自動で再起動をしてバックアップを自動で取る」という実行ファイルです。
バックアップは4世代分まで保存をして、5世代以降は削除するような仕組みとなっています。
自動で5世代以降のデータを削除するのはデータ保存しているデータドライブの負荷を減らすためです。
バックアップがされた後は先ほど作成した「/line-notify.sh 」の実行ファイルが起動してLINEに通知がいくようになっています。
下記をコピーして、「sdtd-chk.sh」という名前でシェルスクリプトの(.sh 拡張子のついたファイル)を作成します。
テストでデータバックアップが取れるか確認
下記コマンドを入力します。
※実行する際はサーバーがSTOPしているか確認してから実行してください。
サーバーがスタート状態でない場合に、再起動するプログラムとなっているのでSTOP状態にする必要があります。
コマンド実行をします。
コマンドの実行後は、実際にWinSCPでbackupファイルにデータがあるか確認します。
図のように「ERR_7DaysToDie_recent」という直近でバックアップされたファイルが保存されました。
定期的にサーバーが起動しているか(エラー落ちしてないか)確認の設定をする
これまでの工程に対して、定期的に組んだプログラムを走らせないと意味がないので、時間指定をします。
今回は5分ごとにサーバーが落ちていないかチェックを入れます。
Tera Term側で下記コマンドを入力します。
Chooseではenterで進めればOKです。
すると下記のような画面が開きます。
# m h dom dow commandの下に下記のコマンドを入力します
5分ごとに stdtd-chk.sh のシェルスクリプトを起動させるというコマンドとなります。
入力後は 「Ctrl+X 」を押してセーブいたします。
これによってcheakファイルが5分ごとにサーバーで起動してくれるのでサーバーがエラー落ちしてる場合、自動再起動とサーバーが落ちた際のバックアップが取られます。
サーバーをSTOPさせて、5分放置してみせください。
自動でsdtd-chk.shが5分ごと✓がはいる為、サーバーが自動で再起動されます。
指定した時間に自動再起動+バックアップを取る方法
前述では定期的にチェックをいれて、エラー落ちの際に自動再起動+バックアップでした。
次はサーバーを任意の時間に再起動とバックアップする方法となります。
下記をコピーして、「sdtd-bkup.sh」という名前でシェルスクリプトの(.sh 拡張子のついたファイル)を作成します。
host1=”〇〇〇〇〇〇〇“
→自身のサーバーのIPアドレスを入力します。
pass=”〇〇〇〇〇〇〇“
→自身のXserver vpsのパスワードを入力します。
作成したファイルはWinSCPで/home/sdtdserver の直下にファイルを保存します。
このスクリプトは「指定した時間のサーバーをストップして、60秒後にバックアップを取り、サーバーを再起動して、LINE通知をする」という実行ファイルです。
指定した時間を設定
下記コマンドを入力します。
Chooseではenterで進めればOKです。
すると下記のような画面が開きます。
毎朝朝5時に sdtd-bkup.sh のシェルスクリプトを起動させるというコマンドとなります。
入力後は 「Ctrl+X 」を押してセーブいたします。
朝5時にサーバーが自動で再起動と同時にバックアップがされます。
仮に1日で数回自動再起動させたい場合は、時間を追加します。
上記の例ですと6時 / 12時/ 18時で1日3回の自動再起動とバックアップが取れるコマンドとなっています。
まとめ
今回は
①サーバーの再起動時は自身のLINEに通知を送る
②エラー時にサーバーが落ちた際は自動で再起動する
③任意の時間でサーバーを再起動させる
の3点をまとめてご紹介いたしました。
3つのシェルスクリプトを作ってしまって、IPアドレスとパスワードを書き換えるだけなので、一度ファイルを作ってしまえば次回が楽です。
作ったファイルを指定した時間で起動させるだけなので、内容だけ理解してしまえば設定は5分程度で終わります。
ぜひご参考いただき、サーバー管理が楽になればと思います。