仙台の山奥で自転車に乗ったり転んだり

愛車の GIOS でサイクリングしたりポタリングしたり、それをブログに記録してみたり。ロードバイクや自転車や坂のことを書いてみたり。ときたまプログラムのことを忘れないようにメモってみたり。

Linux

バッチ処理のログから処理時間だけを抜粋して平均を計算

あるサーバで5分毎に実行しているバッチ処理があって、毎回の処理でどの程度の処理時間がかかっているのか、サーバの負荷と比較したときに処理時間は比例するのか……など調べていた。 細かな解析についてはスクリプトを用意してゴリゴリと解析していたんだけ…

kSarでsarコマンドの出力をグラフ化、と日本語の文字化け

先日仙台のインフラ勉強会に参加して、藤田さんが発表でちょっと見せてくれたkSarが良さげだったので試してみました。前に試したときは、良さを堪能できなかった、というか英語で使いこなせなかったのですが、コンソール上でsarが出力する数字と睨めっこする…

コンソールで設定ファイルを編集して、作業メモなどとして転載するとき、ヒアドキュメントを使うとスマートだよね、というメモ

表題でメモは完了している、という話しですが。 # cat > /etc/syslog/hoge <

コンソールで設定ファイルを編集して、作業メモなどとして転載するとき、ヒアドキュメントを使うとスマートだよね、というメモ

表題でメモは完了している、という話しですが。 # cat > /etc/syslog/hoge <

コンテンツのバックアップ

コンテンツをバックアップするスクリプトを書き上げてから、こんな単純な要求に対して複雑すぎる……感が半端ない。無駄かー (テストで)「/etc/」以下と、「/var/log/」以下をバックアップ バックアップは25日間保存 「/srv/contents-backup-datastore」以下…

Apacheの起動失敗

不安定なWebサーバを再起動でしのごうとしたら、問題なく終了したサービスが起動してこない……。 あせってネットワークを再起動したり迷走したけど、よく確認したら終了しないで生き残ったプロセスがいるから、80番ポートが解放されていないのが原因でした。 …

リストアップ済みのパッケージをyumでインストールするスクリプト

複数台のCentOSを準備するために、同じパッケージのインストール作業を自動化するためのシェルスクリプトを用意しました。 自動化という意味ではもっと素敵な方法あると思いますが、マニュアルライクな対応ができてステキ……というか、手抜きな対応なのです (…

ページャー(less)をvimエディタに変更

ページャーはマルチバイトに対応していて軽量だったらいい、程度の認識だったのでlvを使用していました。でも、八割方プログラムソースや設定ファイルを見るのに使用するのだから、シンタックスハイライトとか使い慣れているvimと統一されているほうがいいね…

ユーザ「x」が参加するグループを追加

# gpasswd -a cracker wheel

ユーザ「x」が参加するグループを追加

# gpasswd -a cracker wheel

Apacheプロセスの稼働(メモリ確保)状況をモニタリング

Apacheプロセスのメモリ確保状況をしたくて、↓のスクリプトでモニタリングしてみる。ついでに、合計も出してみる。 [dev]~ $ cat monitor_proc.sh #!/bin/sh if [ $# -ne 1 ]; then echo "usage: #{0} [pname]" exit 1 fi pname=$1 pidlist=$(pgrep -d, -x $…

Apacheチューニングのためのメモリ使用量計算

「/proc/(pid)/status」のメモリサイズからメモリ消費量をリストアップするスクリプトを準備した。 「サーバ/インフラを支える技術」に載っている、id:naoyaさんの共有しているメモリのサイズを計算するスクリプトとあわせて、エクセルに落とし込んでごにょ…

ユーザ管理がLDAPのサーバでカウントを確認

getentコマンドを使って、/etc/nsswitch.confの設定から検索できる。 getent passwd getent group LDAPやNISなどの認証も含めて、設定に応じてシステムのユーザを網羅

データ構造をリストアップ

manが英語しかないので、いまいちちゃんと使えてなけどがんばってみた。 tree -a -I "test|img|.backup|*.ucp|*.ucm|*.swf|*~" --dirsfirst /var/www/html/ > /tmp/tree.txt 「.htaccess」などの隠しファイルをリストアップ 「test」「img」「.backup」のデ…

ユーザのファイル/ディレクトリを定義

固定フォーマットでユーザIDだけ可変なディレクトリとかファイルの生成 export FOO_BAR=/tmp/foo-`id -u`-bar rm -rf $FOO_BAR mkdir $FOO_BAR ls -ld $FOO_BAR export FOO_BAR=/tmp/foo-`id -u`-bar rm -rf $FOO_BAR touch $FOO_BAR ls -l $FOO_BAR

Apacheのセットアップ

用意していたhttpd.confに交換 [root ~]# cd /etc/httpd/conf [root conf]# cp httpd.conf httpd.conf.`date "+%F@%R"` [root conf]# cp ~/install/etc/httpd/conf/httpd.conf /etc/httpd/conf conf.dの中身も用意していたものと交換、不要なものは無効化 [r…

ZABBIXのインストール

勢いでZABBIXをインストールする。 ソースから入れて管理するのは嫌なので、yumでインストール。 # yum --enablerepo=remi,epel,rpmforge install zabbix zabbix-web zabbix-agent 1.4.6で古めだけど、いつも使ってるのも似たバージョンなので気にしない。こ…

sudoの入れなおし

sudoで「audit_log_user_command(): Connection refused」のエラーが発生するので、sudoをコンパイルしてインストールする。 [root ~]# yum install gcc [root ~]# yum install pam-devel [root ~]# cd /usr/local/src [root src]# wget ftp://ftp.informati…

お名前.comのVPS

お名前.comのVPSサーバを借りる。 どうしても(楽に)自由サーバがほしくて、メモリ1GBで3,000円以内ならありかな、と契約した。 よくみたら、512MB(最大1GB)だった。よく考えればそんなにハードに使わないので、1,000円くらいのでよかったような……。 [roo…

diffで改行コードを無視

忘れないようにメモ CRLFとLFの差分を無視したい diff --strip-trailing-cr linux.txt windows.txt ディレクトリの差分でも diff -qr --strip-trailing-cr linux windows manで調べてないのでダメかと思ったら、infoであった info diff

日別ログの毎日の確認

アプリケーションのログとか、よく日単位でローテートする。 だいたいアプリレベルでファイル名にYYMMDDを関連付けて片づける。 その最新版ログをチェックするのに、いちいち名前指定がムダと思った。 tail -n100 -f /var/log/httpd/access_log.`date +%F` …

cannot restore segment prot after reloc: Permission denied

swfmillをコンパイルしたらエラーでこけた。 SELinuxのライブラリに対するセキュリティ属性が適切に設定されていない……ということのよう。rootユーザでコンパイルしたlibxmlなどのセキュリティ属性を変更 chcon -c -v -R -u system_u -r object_r -t textrel…

ファイルを空にする

データを空にするには「: >」を使う。 $ touch test.dat $ du -h test.dat 4.0K test.dat $ echo 'test1' >> test.dat $ echo 'test2' >> test.dat $ echo 'test3' >> test.dat $ cat test.dat test1 test2 test3 $ du -h test.dat 8.0K test.dat $ : > test…

所有者情報と書き込み権限を一括処理

サーバのセットアップが完了してからオペレータの権限に適合させるときとか。 #/bin/sh DIR=/home/user LOG=$DIR/log/chfile.log WORKDIR=/opt/httpd/docs USERNAME=ftpuser # Main routine echo "chown/chmod start." `date` >>$LOG for i in css form imag…

業務ログをざっと確認する

業務アプリでとったログをざっと確認するツール。 複数アプリのログを過去5日分、エラーが記録されたものだけGREPするイメージ。 #/bin/sh DIR=/opt/app INCLUDES=(`/bin/ls -A -t ${DIR}`) for APP in ${INCLUDES[@]} do LOGS=$DIR/$APP/logs if [ -e "${LO…

バージョン情報を集約する

#/bin/sh DIR=/home/foo LOG=$DIR/log/version echo "version is recorded " `date` >>$LOG echo "-------------------------" >>$LOG echo "PHP" >>$LOG echo "-------------------------" >>$LOG /usr/bin/php -v >>$LOG echo "Apache" >>$LOG echo "-----…

ファイルへのリンクを探すための手段

比較的大きな規模のサイトでコンテンツを削除するの時に、どこかにリンクが残っている可能性がる場合の検索方法がいつもよく分からない。 findとgrepで大雑把に探して、その結果から精査しているけど効率が激しく悪いと思う。 cd /usr/local/apache/ find do…