タグ別アーカイブ: Linux

mkvをmp4に変換するバッチスクリプト

mkv2mp4_flac1

よく使う割には手順が多くて面倒なのでバッチを作った。

h.264 + FLACなmkvファイルをmp4に変換する。
中身のFLACファイルはmp4には入らないので、AACに変換。
可変フレームレート対応。

使い方など
mkv2mp4_flac1 -v 0 -a 1 file.mkv [file2.mkv] [file3.mkv] …
事前に、ファイルのトラック番号をffmpegなどで調べる。
-v < ビデオトラックID> -a < オーディオトラックID>
ファイルは指定しただけ処理される。

続きを読む mkvをmp4に変換するバッチスクリプト

UNIX/Linux環境でFTPを再帰的に拾ってくる方法

こんにちは、岡田洋一です。

UNIX/Linux環境でFTPのディレクトリをまるごと取りたかったんです。が、ftpコマンドだとディレクトリを取ろうとしてもダメなんですね。

get somedirectoryってやるとNot a regular fileって怒られます。


shell> ftp ftp.example.com
Connected to ftp.example.com.
220 ::ffff:192.0.2.1 FTP server ready
Name (ftp.example.com:user): user
331 Password required for user
Password:
230 User user logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get tmp
local: tmp remote: tmp
550 tmp: Not a regular file

ディレクトリを再帰的に取りたい、っていう場合にはwgetを使うと良いようです。


shell> wget -r ftp://user:[email protected]//path_to_get/

多くの環境でインストールされているwgetで、ワンライナーで取得できるのはいいですね。

参考:  How do you recursively ftp a folder in linux

Debian/Ubuntuのコードネームを確認する方法

梅雨が明けたとか明けないのかよく分からない天気が続きますね。僕のダイエットもいつ明けるのか全く不明です。

岡田洋一ですこんにちは。

さて最近はDebian/Ubuntuをよく利用しています。以前はUnix/Linuxと言えばFreeBSD一択だったのですが、どうにも世の流れはLinuxということでお手軽なLinuxに移行しつつあります。日本ではCentOSが根強い人気を持っていますが海外の情報が少なく、また自信の周りの友人がDebian/Ubuntu派だったためDebian/Ubuntuを利用しています。

さてそんなDebian/Ubuntuですがこれらにはコードネームがついているんですね。5.0 -> 6.0といった具合にメジャーバージョンが変わったときには必ずこのコードネームが変わります。

このコードネームですが利用する上で知っておくことが必要になることがあります。パッケージ化されているソフトウェアはOSのバージョンによって違ってきますのでコードネーム名がついて配布されていたりします。またパッケージ管理ツールのaptもコードネームベースになっています。

そんなコードネームは /etc/os-release を見ることで確認できます。

shell> cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"

VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"

ところでDebianのコードネームはトイストーリーのキャラの名前なんですね。知らなかったです。

Debianのコードネーム一覧
Debian GNU/Linuxのバージョンと名前(コードネーム)|星屋工作室 hoshiya.biz

またLinuxのディストリビューション名を確認するときには /etc/issues を参考にすると良いです。


shell> cat /etc/issue
Debian GNU/Linux 7 \n \l

unameで確認できない時にこちらの方法で確認できたりします。

NIS, LDAPを用いた複数の環境でログインシェルを変更する

NIS, LDAPを用いた複数の環境でログインシェルを変更したかった。

現在自分の環境ではLDAPを利用している。ログイン情報をLDAPサーバに集約できるので非常に便利。LDAPではログイン時にユーザ名、パスワード(ハッシュ)などの情報を各ホストに提供するのだけれど、その中にはログインシェルも含まれる。

ログインシェルといえばUNIX系でよく使われるcsh, tcsh、Linux系でよく使われるbash、また高機能シェルとして名高いksh, zshなどがある。自分はzshをメインのシェルとしているのだけれど、LDAPのログインシェルの情報をzshに変更するだけでは問題がある。

まず一つ目はフルパス表記での問題だ。
ログインシェルは通常フルパスで表記される。これはシェルの初回立ち上げ時に~/.cshrc, ~/zshrcといった環境ファイルを読み込ませ、その段階でパスがセットされるからだ。つまりログインシェルの情報を取得して起動させる段階ではパスが通っていないことが想定される。そしてこのフルパス表記がOS毎に違ってくる可能性がある、ということが問題の核だ。
このシェルの実体、バイナリの実体が配置される場所は大まかに以下のようになる。Linux系ではrpm, yum, aptなどのパッケージ管理ツールでインストールした場合の/usr/bin/、デフォルトで配置される/bin/、ソースからインストールされた/usr/local/binである。
対してFreeBSDの場合、tcshやcsh, shなどの元々インストールされているバイナリは/bin/sh, /bin/tcshなどに配置されるが、後から手動でインストールされたバイナリは/usr/local/binに配置される。zshやbash(FreeBSDではbashがデフォルトで入ってこない)は/usr/local/binに置かれている訳だ。
この問題に関して言えば、インストール時にバイナリの配置場所を/usr/bin, /bin, /usr/local/binのいずれかに統一してしまう、若しくはシンボリックリンクを統一された場所に配置する、という解決方法が考えられる。でもこれらの作業をそれぞれのホストでいちいち実行するのは億劫だ。

二つ目の問題はデフォルトでインストールされるシェルが少ないことだ。自分の環境では主にFreeBSD、またDebian系(Ubuntu)、RHEL系(CentOS)、さらにはMac OS Xと数種類のOSを利用している。その中でデフォルトでインストールされるシェル、となると実は結構少ない。FreeBSDではcsh若しくはtcshをデフォルトシェルにする事が多い。対してLinuxではbashがデフォルトシェルとなることがおおい。そして残念な事にはFreeBSD/Linuxに於いては(t)csh/bashがお互いにデフォルトでインストールされていない。
ということはbashならbashをLDAPのデフォルトシェルにしてしまって、bashの環境ファイルである.bashrcなどでzshを呼び出す、という事ができない。

以上の点を踏まえながら試行錯誤していった結果、「UNIX/Linuxの両方に入っているシェルを使ってログイン時にzshにしてしまう」という方法にたどり着いた。ちなみにそのUNIX/Linuxの各種OSの最大公約数と言うべきシェルはsh。
shとはThompson shellを意味し、bashの前身となったシェルだ。過去にはバックスペースすら無かった気もするけれど、カーソルキーで入力位置を変更できない、コマンド履歴が使えないというシェルの基本的な機能のみしか持っていない素朴なシェルだ。
(とは言え、過去のbashも同様でデフォルトではコマンド履歴なども使えなかった気がしてbashとshのデフォルト状態での違いがあまり無いような状態だったんだけれど、最近のbashは使いやすいシェルっぽくなってる)
さてLDAPではこのshをデフォルトシェルにし、shが立ち上がった後にzshを呼び出すようにしてみる。

shでログインされた際に呼ばれる環境ファイルは “.profile”ファイルである。”.login”かと思ったんだけれどこれはshだと実行されないしcsh系だった気がする。つまりsh系ではダメということ。
この.profileファイルには直接shに実行して欲しいことを記述する。以下に例を示す。

[ -x /usr/local/bin/zsh ] && exec /usr/local/bin/zsh
[ -x /bin/zsh ] && exec /bin/zsh

shらしい記述で条件式を書き、それぞれのバイナリが存在し実行可能であればexecしてやる。execでシェルを呼び出せばログインシェルが切り替わった動作になるのでCtrl+Dなどでシェルを抜けたときにzshを支えているshも一緒にexitしてくれる。つまりログインシェルがzshになったようにみえてshを意識することが無い。

以上で思っていたようなzshなどのパスが違う環境でログインシェルを統一する、ということが可能になった。

めでたしめでたし。

TeamSpeak3のserveradminのパスワードを忘れてしまった場合の対処法

TeamSpeak3のserveradminのパスワードを忘れてしまった場合の対処法について。

音声チャットソフトTeamSpeak3の管理用アカウントとしてserveradminがあるのだけれど、そのログインパスワードを忘れてしまったときの復旧方法について。管理用ログインを使うといろいろなことができるのだけれど、この管理用パスワードは恐らく初回インストール時、初回サーバログイン時に表示されてよくわすれちゃう。どこかのログに残っていそうなきがするのだけれど探しても見つからないし途方に暮れてしまっちゃう。で、そんなアナタに、そんなワタシにserveradminのパスワード復旧法。

まずは元になった記事の紹介。

A simple ts3 serveradmin password recovery script (win + linux)
というわけでパスワード復旧のスクリプトを配布してくれている人がいました。このスクリプトを使って復旧できます。

上記フォーラムの第一投稿にスクリプト(tar.gz)のリンクがあるのでダウンロードして解凍して実行。これでうまくいきます。中にはwindows用とlinux用のスクリプト、batファイルbashスクリプト、それからsqliteのバイナリが入っている。それぞれの環境で実行してやればうまくいくはず。

このスクリプトを実行すると管理者のパスワードをykN+zfqDに変えてくれる。これでこのパスワードを使ってログインする事ができる。管理者でのログイン方法については他の記事を参照してください

で、もちろん気をつけなければいけないことは、管理者用パスワードをログイン後に変えておくこと、が必要。これは絶対に必要。アナタのTeamSpeak3 serverを守るために必ず行っておいてください。

管理者用のパスワードの変え方については以下の通り。telnetでログインして上記のパスワードでログイン後、”clientsetserverquerylogin client_login_name=serveradmin”を実行する。これで新しいランダムなパスワードが発行される。このパスワードをメモしておきましょう。

login serveradmin ykN+zfqD
 error id=0 msg=ok</b>
 clientsetserverquerylogin client_login_name=serveradmin
 client_login_password=password
 error id=0 msg=ok

どんなスクリプトなの?

というわけで、管理者のパスワードを書き換えるという結構危ういスクリプトなので中身が気になりました。簡単なスクリプトなので中身を覗いてみることに。
中身はsqliteでのいくつかのSQLの発行している。clientsテーブルのclient_id=1な行をserveradminとしてそこのclient_login_passwordをupdateしている。


UPDATE clients
SET client_login_password = "r5oBZ3Z8s8IqjiEJ/k3o9dkSUgU="
WHERE client_id = "1";

更新している内容は恐らくmd5のハッシュだと思われる。ハッシュの元になっているのが先述の”ykN+zfqD”で、このハッシュにアップデートすることでパスワードを変更している。

なるほど、という感じでこれぐらいなら安心できることが確認できました。

FreeBSDとかだとsqliteのデータベースファイルの位置がわかりにくいのだけれど、そこへいって手動でsqliteを実行することでパスワードを更新できた。sudoで変更してあげれるようにしてやらないとダメだけど。

 

というわけで管理者で無事にログインできるようになります。

TeamSpeak3で管理者ログインする方法

TeamSpeak3で管理者ログインする方法について。

無料のボイスチャットソフト、TeamSpeak3。そのサーバを運営していると管理者でログインする必要がでてくる。管理者でのログインはわかりにくいのだけれどその方法についてのメモ。

過去のバージョンだとTeamSpeak3のクライアントから様々なクエリを使うとができていたと思うんだけれど、なぜだか現行バージョン(3.0.9.2)だと無理だったので他の方法で試してみた。
ちなみに過去のバージョンのやり方はTeamSpeak3 Wikiに載っているので参照されたし。

ログインしてクエリを実行するにはtelnetを行う必要がある。telnetは主にTCPを用いたいろいろなコマンドのやりとりをするもので、UNIX/Linuxに入っている。昔のWindowsには付いていたんだけれど最近のWindows 7とかだと見かけない。そういう場合にはTeraPadputtyを利用しよう。

telnetでのログイン

telnetでログインするにはIPアドレス又はホスト名、そしてポート番号が必要だ。IPアドレス、ホスト名についてはクライアントでログインするときに使用しているアドレス、ホスト名を入力しよう。ポート番号についてはデフォルトでは10011。TeamSpeak3では下記のようなポート番号を使っている。10011を3倍したものはファイル転送用だ。

サービス ポート番号
通常の音声チャット 9987 tcp
管理サーバクエリ接続 10011 tcp
ファイル転送用 30033 tcp

サーバ/クエリ


実際にtelnetで接続してみる。まずは “telnet ホスト名 10011″と入力する。接続が完了したら”login serveradmin password”としてログインしよう。

shell> telnet ts.l2tp.org 10011
Trying 192.168.11.1...
Connected to ts.l2tp.org.
Escape character is '^]'.
TS3
Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.
login serveradmin passwork
error id=0 msg=ok

うまく接続できない場合にはIPアドレスが正しいかチェックしてみる。該当のホストでnetstat -natsockstat | grep teamspeakなどしてみよう。
ログインするときのserveradminのパスワードが分からない場合にはパスワードをリセットしましょう。

これでサーバへログインできたと思う。この先にはいろいろなことができるのでやってみましょう。

sedを使ってファイルの中身を置換する

sedを使ってファイルの中身を置換したかった。
ヒトクセあるsedだけどコマンドラインでさっくり置換してくれるのは魅力。
置換となるとファイルの中身を書き換えて欲しかったりするんだけどファイル自身を書き換えるときのオプションを調べたのでメモ。二回目なのでメモ。忘れていたのでメモ。

FreeBSDはオプションがLinuxなどの GNU sed と違うらしい。ファイル自身を書き換えるオプションがGNU sedなら-iでいける。でもFreeBSDであれば-iは引数を伴いそのファイル名で出力する、というものなのだ。で、ファイル自身に書き出したいときにはシングルクォートで引数に空文字を渡してやればそれ自身を書き換えることができる。めもめも。

shell> sed -i '' 's/hoge/fuga/g' inputfile

TeamFortress2のサーバをFreeBSDで立ててみる

TeamFortress2の鯖を立ててみたくなった、のでやってみる。OSはFreeBSD。現在のsourceエンジンじゃない、hlds(half life dedicated server)の時代から、パフォーマンスを出すならLinuxで、というのが定石だ。詳しい仕組みはわからないんだけれど、サーバでの更新レートを秒間1000回出すためにはlinuxのネイティブ環境じゃないとダメなのだ。更新レート秒間1000回ってのは俗に言う、「鯖のFPS1000」ってやつ。hlds時代の実験ではFreeBSDで動くsteam鯖はあくまでlinuxのエミュレートなのでどうしても秒間500回までしかでなかった。でも今回はパフォーマンスをそこまで気にしていないのでFreeBSDでやってみる。

あと現状がどうなってるのかもよくわかんない。

以前にたぶんL4D2用にsrcds鯖を立てたことがあったので参考にしながらやってみた。

まずはsteam鯖をportsからインストール。linuxエミュレート環境がないとココのインスコでコケちゃう。

linuxエミュレート環境はrc.confにlinux_enableをYESと書いてlinux.koをkldloadしてやる。最近だと標準で付いてくるケースが多い気がするけど、もしかすると環境によってはportsでlinux.koを入れないとダメかも。


shell> echo ‘linux_enable=”YES”’ >> /etc/rc.conf

shell> kldload linux.ko

shell> games/linux-steam

インストールするとパッケージからの情報として下記の通りメモが出てきた。ログイン情報はいらなくなったよ、とのことらしい。前々からアレについてはよくわかんなかったんだよね。


===>>> pkg-message for linux-steam-1.1
------------------------------------------------------------------------
Linux HLDS Update Tool has been successfully installed!

To get started:
cd /usr/local/steam
./steam -command update -game [name] -dir .

Steam will then begin downloading the game content to your system.  Once
complete you may start your server by:

./hlds_run -game [name] +map [mapname] -maxplayers [#] \
-autoupdate

OR

./srcds_run -game [name] +map [mapname] -maxplayers [#] \
-autoupdate


NOTE: Steam no longer requires login information.
------------------------------------------------------------------------

メモにあるとおり、/usr/local/steamにsteamという名前のバイナリが転がってる。ココにゲームのサーバ本体を入れたりして運用しましょう、ということらしい。アップデートのためにsteamバイナリを何度か動かして、その後でゲームリストを拾ってみる。steamバイナリを動かすときはroot権限とかの、/usr/local/steamに書き込み権限がないとアップデートで落としてくるファイルを書き込めなくてエラーになる。


shell> ./steam -command help
Checking bootstrapper version ...
Getting version 48 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command
shell> ./steam -command help
Checking bootstrapper version ...
removing stale semaphore last operated on by process 2786 with name 0eBlobRegistryMutex_07692C9F0DCCAB9B49E0AA2095A1952C
removing stale semaphore last operated on by process 2786 with name 0eBlobRegistrySignal_07692C9F0DCCAB9B49E0AA2095A1952C

Use: steam -command <command> [parameters] [flags]

Commands:

update: Install or update HLDS

parameters:
-game <game>            -   Game name (use '-command list' to see available games)
-dir <installdir>       -   HLDS Install dir
(if dir not specified, will use value from last run of tool)

flags:
-verify_all             -   Verify all HLDS files are up to date
-retry                  -   Automatically retry every 30 seconds if the Steam Network is busy
-remember_password      -   Remember password (if a username is supplied)

For example: steam -command update -game cstrike -dir /hlds

version: View installed versions

list: View available games

Optional parameters for all commands:

-nobootstrapupdate      -   Do not check for updates to the update tool

shell> ./steam -command list
Checking bootstrapper version ...
removing stale semaphore last operated on by process 2793 with name 0eBlobRegistryMutex_07692C9F0DCCAB9B49E0AA2095A1952C
removing stale semaphore last operated on by process 2793 with name 0eBlobRegistrySignal_07692C9F0DCCAB9B49E0AA2095A1952C
** 'game' options for Source DS Install:

"Counter-Strike Source"
"ageofchivalry"
"alienswarm"
"cssbeta"
"diprip"
"dods"
"dystopia"
"episode1"
"esmod"
"garrysmod"
"garrysmodbeta"
"hl2mp"
"insurgency"
"l4d_full"
"left4dead"
"left4dead2"
"left4dead2_demo"
"orangebox"
"pvkii"
"smashball"
"synergy"
"tf"
"tf_beta"
"zps"

** 'game' options for HL1 DS Install:

"cstrike"
"cstrike_beta"
"czero"
"dmc"
"dod"
"gearbox"
"ricochet"
"tfc"
"valve"

** 'game' options for Third-Party game servers:

"ageofchivalry"
"aliensvspredator"
"americasarmy3"
"brink"
"darkesthour"
"darkmessiah"
"defencealliance2"
"dinodday"
"diprip"
"dystopia"
"esmod"
"garrysmod"
"garrysmodbeta"
"hauntedhellsreach"
"homefront"
"homefrontjpn"
"insurgency"
"killingfloor"
"killingfloor_beta"
"marenostrum"
"modernwarfare3"
"mondaynightcombat"
"naturalselection2"
"nucleardawn"
"pvkii"
"redorchestra"
"redorchestra2"
"redorchestra_beta"
"serioussam3"
"serioussamhdse"
"ship"
"sin"
"smashball"
"synergy"
"tshb"
"zps"

どうやらTeamFortress2のゲーム名はtfらしい。TeamFortressClassicとカブりそうな気もするけどいいのかな。

下記のコマンドを入れるといろいろとファイルをダウンロードしてくる。結構時間かかりました。


shell> ./steam –command update –game tf –dir ./

…(略)…

102:08    100.00%  downloading .//orangebox/hl2/navplace.db
102:08    100.00%  downloading .//orangebox/hl2/pure_server_whitelist.txt
102:08    100.00%  downloading .//orangebox/libcurl.so.4
102:08    100.00%  downloading .//orangebox/libcurl.so.4.2.0
102:09    100.00%  downloading .//orangebox/srcds_linux
102:09    100.00%  downloading .//orangebox/srcds_run
102:09 [63.150.140.70:27030] Disconnecting
HLDS installation up to date

http://tfortress2.wikiwiki.jp/?server.cfg

上記サイトを参考にサーバの設定をしてみた。コンフィグの置き場所はsteamバイナリが置いてある場所から相対で orangebox/tf/cfg/server.cfg に新規作成。


shell> cat orangebox/tf/cfg/server.cfg


hostname "l2tp tf2 server"
rcon_password "rcon"

mp_chattime 10
mp_stalemate_enable 0
mp_stalemate_timelimit 240
mp_bonusroundtime 5
mp_winlimit 0
mp_maxrounds 0
tf_flag_caps_per_round 3
sv_alltalk 0
mp_timelimit 15
hostname
sv_pure 0
sv_lan 0
sv_consistency 1
sv_stats 1
sv_region 4
log on
sv_log_onefile 0
sv_logfile 1
sv_logbans 1
sv_logecho 1
fps_max 600
sv_minrate 0
sv_maxrate 20000
sv_minupdaterate 10
sv_maxupdaterate 66
sv_allowupload 1
sv_allowdownload 1
net_maxfilesize 15
mp_autoteambalance 1
mp_autoteambalance_delay 60
mp_autoteambalance_warning_delay 30
mp_teams_unbalance_limit 1
mp_enableroundwaittime 1
mp_bonusroundtime 8
mp_restartround 0
mp_stalemate_enable 1
mp_stalemate_timelimit 300
mp_timelimit 35
mp_forcecamera 0
mp_allowspectators 1
mp_footsteps 1
sv_cheats 0
sv_timeout 900
mp_idlemaxtime 15
mp_idledealmethod 2
decalfrequency 0
sv_voiceenable 1
mp_chattime 10
tf_birthday 1

tv_enable 1
tv_name "l2tp hltv"
tv_maxclients 5 // (0-255, default 128)
tv_delay 10 // (10-120[sec], default 30)
tv_delaymapchange 1 // (1 | 0)
tv_port 21520 // (default 27020)
tv_maxrate 0 // (default 5000[bps], 0:unlimited)
tv_autorecord 0
tv_debug 1 // (1 | 0)
//tv_snapshotrate 24 // (default 16)
tv_dispatchmode 1 // (0=never, 1=if appropriate, 2=always)
//tv_overrideroot 0 // (0 | 1)
tv_allow_camera_man 1
tv_allow_static_shots 1 //
//tv_relayvoice 1
tv_transmitall 1


そして実行。+ipで与えるアドレスはsrcds_runのプロセスがバインドするアドレスなのでnapt配下の環境ではローカルipを渡してやる。

一瞬ゲームサーバとかに広告するアドレスでグローバルを書くべきかなとか思ったけど違うみたい。


shell> cd orangebox
shell> ./srcds_run -console -game tf +map ctf_2fort +maxplayers 20 +ip 192.168.1.1 –autoupdate
Auto detecting CPU
Using default binary: ./srcds_linux
Server will auto-restart if there is a crash.
INFO: Located steam: ../steam
Updating server using Steam.
Checking bootstrapper version ...
Getting version 48 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .Cannot open output file 'LinuxHldsUpdateTool_48.pkg'
2012G/ 47n14F| EZMKF| 11;~42J,28IC JST: Steam Update failed, ignoring.
Unable to determine CPU Frequency
2012G/ 47n14F| EZMKF| 11;~42J,28IC JST: Server restart in 10 seconds
Updating server using Steam.
Checking bootstrapper version ...
removing stale semaphore last operated on by process 22499 with name 0eBlobRegistryMutex_1F7241AEB333B3B7B12FBB9F8A43FDED


なにやら更新作業をしようとして失敗のループをしてる。

Downloading. . . . . . . . . . . .Cannot open output file ‘LinuxHldsUpdateTool_48.pkg’

どうやらファイルをダウンロードしたけど書き込めないよ、とのことらしい。

root権限で動かすとセキュリティリスクがあるよって怒られた。プロセスが乗っ取られるとまずいよね、って。ひとまずroot権限で動かして後でユーザ所有のディレクトリに変えてやる。


shell> sudo ./srcds_run -console -game tf +map ctf_2fort +maxplayers 20 +ip 192.168.1.1 -autoupdate


************** WARNING ***************
Running the dedicated server as root
is highly discouraged. It is generally
unnecessary to use root privileges to
execute the dedicated server.
**************************************


The server will continue to launch in 10 seconds\rThe server will continue to launch in 9 seconds\rThe server will continue to launch in 8 seconds\rThe server will continue to launch in 7 seconds\rThe server will continue to launch in 6 seconds\rThe server will continue to launch in 5 seconds\rThe server will continue to launch in 4 seconds\rThe server will continue to launch in 3 seconds\rThe server will continue to launch in 2 seconds\rThe server will continue to launch in 1 seconds\rAuto detecting CPU
Using default binary: ./srcds_linux
Server will auto-restart if there is a crash.
INFO: Located steam: ../steam


と、またもやループしてる。

見れば

Unable to determine CPU Frequency
と出ている。どうやらCPUの周波数が分からないよ、と。FreeBSDだとLinuxと違ってprocinfoにCPUの情報が無いからだろう。

過去の記事を参考にprocinfoを引けるようにしてあげる。


shell> echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> /etc/fstab

shell> mount -a

動いた。でもLANモードオンリーとかって気になる文字列が。


shell> ./srcds_run -console -game tf +map ctf_2fort +maxplayers 20 +ip 192.168.1.1 –autoupdate

…(略)…

*********************************************************
*       Unable to load Steam support library.*
*       This server will operate in LAN mode only.*
*********************************************************



原因はポートの待ち受け設定をnaptでやってないことだった。naptでポートの転送先をちゃんと設定するとうまく動いた。

以上で一通りの動作を確認できた。あとは動かしながら調整していこうと思う。

CentOSでSSHのログインがとても遅かった件

1. SSHのログインが遅い・・・・!

CentOSを導入してみた。で、LDAPの設定をして、SSHで接続しようと思ったんだけど遅い、遅すぐる・・・!

どこが遅いのかというと、SSHで接続に行ってパスワードの入力を促されるまでに10秒ほど待たされる。コレは参った。

で、SSHの応答が遅い –> サーバでDNSの逆引きを疑え! という格言がある通り(わしが言った!)、まずココを疑う。

対象のホストでDNSで逆引きしてみる。ちゃんとうまくいく・・・。

ついでに色々とログインしてみたら、公開鍵での認証は早いみたい。どうやらパスワードの認証だけがやたらめったら遅いらしい。

続きを読む CentOSでSSHのログインがとても遅かった件

Debianでtritonnをインストールしようとしたらコケた

debianでtritonn, senna, mysqlをインストールしようとコンパイルしたらコケた。

バージョンは tritonn-1.0.12-mysql-5.0.87

このバージョンだとFreeBSDでもコンパイルが通らなくて、linuxならいけるでしょ!って思ったら無理だった。

しょんぼりしながら湯バード先生に泣きついて、ググってもらって情報が出てきたり。

ありがとう!湯バード先生!

続きを読む Debianでtritonnをインストールしようとしたらコケた