8月 022012
 

今回は管理編です
続きを読むにはcontinue readingをクリックしてください
[メニュー]

現状では、CS:GOのサーバープログラムを実行するには、サーバー機の電源を入れて、ログインをしてserver.shを実行する必要があり面倒です。
これをサーバー機が起動したら自動でCS:GOのサーバープログラムも実行されるように変更します
[csgo@srcds-server csgo]$ sudo vi /etc/rc.d/rc.local
パスワードの入力を要求されるの入力します
iキーで入力モードに変更し、一番下の行に以下を追加して:wqで終了
/srcds/csgo/server.sh

再起動してちゃんと動作しているか確認しましょう
[csgo@srcds-server ~]$ sudo reboot
再起動後、ユーザーcsgoとしてログインします。その後
[csgo@srcds-server ~]$ screen -x csgo-server
と入力して、csgoのコンソールが表示されればOKです。ctrl+DとAを入力して元の画面に戻ります
rconをlinux上から送信できるようにします。これを使うと管理スクリプトを容易に動かすことができます

tmpに移動します
[csgo@srcds-server ~]$ cd /tmp

プログラムのソースコードをダウンロードします
[csgo@srcds-server tmp]$ wget "www.dopefish.de/files/rcon.c"

プログラムをコンパイルします
[csgo@srcds-server tmp]$ gcc -o rcon rcon.c

プログラムを実行してみます
プログラムの書式は以下のようになっています
./rcon -Pサーバーのrconパスワード -aサーバーのローカルIPアドレス(192.168で始まるやつです。ループバックアドレスを使用する場合は環境によっては失敗するので注意してください) -pポート番号 コマンド
つまり、rcon_passwordがMyRconPasswordで、ローカルIPアドレスが192.168.24.91で、ポートが27015で、送信するコマンドがstatusなら以下のように入力します
[csgo@srcds-server tmp]$ ./rcon -PMyRconPassword -a192.168.24.91 -p27015 status

実行が確認できたらプログラムにパスを通すために移動します
[csgo@srcds-server tmp]$ sudo mv ./rcon /usr/bin

パスが通ったか確認します
[csgo@srcds-server tmp]$ rcon
と入力して、
Syntax: rcon [-P"rcon_password"] [-a127.0.0.1] [-p27015] command
と表示されればOKです
SRCDSは長時間立てているとメモリを食いつぶしてしまって、カクカクするようになってしまいます。
そこで決められた時間にSRCDSを自動で再起動するようにします

/srcdsに移動します
[csgo@srcds-server tmp]$ cd /srcds

再起動スクリプトをダウンロードします
[csgo@srcds-server srcds]$ wget "http://blog.five-seven.net/wp-content/uploads/2012/08/restart.sh"

スクリプトの設定をします
[csgo@srcds-server srcds]$ vi restart.sh
#start settingsから#end settingsまでの間を変更してください
srcds_local_ipはこのサーバーのローカルIPアドレスを入力してください(192.168で始まるやつです)
srcds_rcon_passwordはCS:GOサーバーのrcon passwordを入力してください
srcds_portはCS:GOサーバーのポートを入力してください
srcds_shell_pathはCS:GOサーバーの起動スクリプト(前のpartで導入したserver.sh)までのパスを入力してください。
講座通りにやっている方は/srcds/csgo/server.shです
入力が完了したらEscキーを押して:wqで終了します

スクリプトに実行権を付与します
[csgo@srcds-server srcds]$ chmod +x restart.sh

試しに実行してみます
[csgo@srcds-server srcds]$ /srcds/restart.sh

Console: This server will be restart in 10 seconds
Console: This server will be restart in 9 seconds
.
.
.
Console: This server will be restart in 0 seconds
Console: Thank you for playing!
Starting CS:GO Server
と表示され、パスワードの入力を求められれば成功です。
今回は手動でスクリプトを実行したのでパスワードを要求されますが、自動で行うように設定すればパスワードの入力は不要です

※環境によってはサーバーが二重起動してしまう場合があります。(quitでsrcdsがクラッシュする環境)
その場合はrestart.shの最終行の${srcds_shell_path}を#${srcds_shell_path}に変更してください

サーバーが起動しているか確認します
[csgo@srcds-server srcds]$ screen -x csgo-server
問題なければctrl+DとAで元の画面に戻ります
次は、この再起動スクリプトをcronを使用して特定の時間に自動で実行するように設定します
[csgo@srcds-server srcds]$ sudo crontab -e
iキーを押して入力モードにします。cronは、以下のフォーマットで書きます(分からなければこのページを参照してください)

分 時 日 月 曜日 コマンド
つまり、毎日AM6:00に再起動スクリプトを実行するには、
00 6 * * * /srcds/restart.sh
と入力すればOKです。入力が完了したらEscキーを押して:wqで終了します。

これで、サーバーの自動化が完了しました。サーバー機が壊れるなどのトラブルがなければ自動で起動・再起動を行なってくれます。
※環境によってquitコマンドでサーバーを終了させるとクラッシュしてしまい自動再起動スクリプトが動作しない可能性があります
あとは、ログやデモファイルを自動でアーカイブ化させる設定をすると管理がさらに楽になります。またいつか時間ができたら説明を書いていく予定です

 Posted by at 10:19 PM

  One Response to “Linux初心者のためのCS:GOのサーバー構築講座 Part.5”

  1. […] Linux初心者のためのCS:GOのサーバー構築講座 Part.5 […]

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>