tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

linux

ディスクを圧迫しているファイルを探す

du -am .* | awk '{if (100<=$1) print $1,$2}' 100MB以上使っているファイル・ディレクトリだけを出力する。

HTP(HTTP Time Protocol)を使ってNTPが使えない環境でも時刻あわせをする

はじめに NTPが使えなかったのです。 # ntpdate -d time.nist.gov 24 Nov 16:25:14 ntpdate[22683]: ntpdate 4.2.4p7@1.1607-o Wed Oct 21 14:31:13 UTC 2009 (1) Looking for host time.nist.gov and service ntp host found : time.nist.gov transmit(192.…

文字化けしたファイルやディレクトリをリネームする

Windowsで圧縮したzipファイルを解凍したら文字化けしてた。 文字化けしたディレクトリ $ ll drwxrwxr-x 2 admin admin 323584 11月 18 18:07 ?+???-?u????????+?? ... リネームする i-nodeを調べて、その値を元にfind経由でmvに名前を渡してやるとリネーム…

シェルスクリプトを特定のユーザ以外が実行できないようにする

なんか気づかずにrootで実行していて、後で別ユーザで実行したときにログファイルに書き込めません的なエラーを定期的に起こしている気がするので。 test.sh #!/bin/sh if [ "$USER" != "admin" ]; then echo "Permission denied" exit 0 fi echo "hoge"

linuxでテキストファイルを分割する

でかいファイル $ ll -h backup.log -rw-r--r-- 1 admin admin 3.1G 10月 30 01:52 backup.log 昨晩実行させたプログラムのログファイルがでかすぎる。 ログ出力をDEBUGのまま実行させてたみたい。 行数 $ wc -l backup.log 32901925 backup.log トイレで329…

LinuxとWindowsで優先度を指定してプログラムを実行する

マルチスレッドなプログラムを作ってテストしているとリソース使い切って残念なので、優先度を下げてまったり実行させたいことがたまにある。 Linuxの場合 nice -n <優先度> <command> <args> 優先度は19から-20まで(数字が低いほど高い)。 ただし、負の値にするにはroot権</args></command>…

普通に実行するとうまくいくのにcronからだと失敗する場合

ほぼ間違いなく/etc/crontabファイルに書かれたパスが足りない。 特にJDKは後で入れるものなのでデフォルトのパス設定のままだとJavaが実行できなかったりする。 忘れがちなのでメモ。 /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAI…

CentOS5にTestLinkを入れる

入れたはいいけど、実用で使うのは来年以降になりそう。 準備 ダウンロード TestLinkのサイトから、ファイルをダウンロードしてきます。 配置 普通にtarを展開して配置させます。 # tar xzvf testlink_1.8.3.tgz.gz # mv testlink /opt/ Apacheの設定変更 Al…

CentOS5にTracを入れる

あれ、Tracの導入ってこんなに簡単だったっけ、という印象。 Tracをインストールする yumにリポジトリを追加する 標準リポジトリにTracが登録されていないので、Dag RPM Repositoryを追加する。 http://dag.wieers.com/rpm/packages/rpmforge-release/一覧の…

CentOS5でApacheとTomcat6を連携させる

mod_jkと比べてmod_proxy_ajpは簡単になっているなぁ。 proxy_ajp.confファイルを修正する # vi /etc/httpd/conf.d/proxy_ajp.conf LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ProxyPass /examples ajp://localhost:8009/examples Apacheを再起…

CentOS5にSubversionを入れる

Subversionを入れる # yum install subversion ... # yum install mod_dav_svn ... Subversionの設定変更 # vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn></location>…

CentOSでRuby環境を作る

CentOSでのRubyインストールのメモ。 Ruby # yum install ruby RubyGems 標準リポジトリに無いので、リポジトリの追加を行う必要がある。 # vi /etc/yum.repos.d/dlutter.repo [dlutter] name=Unsupported RHEL5 packages (dlutter) baseurl=http://people.r…

Linuxでのファイル内検索

すぐ忘れる。 標準形 find . -name '*.rb' -print | xargs grep require ./hoge.rb:require "dbi" ./hoge.rb:require "rubygems" ./fuga.rb:require "rubygems" ファイル名は要らない形 find . -name '*.rb' -print | xargs grep -h require require "dbi" r…

CentOSで時計が9時間未来になる件

ハードウェアクロックはローカル時表記なのに、CentOS的には世界標準時表記だと思っているため、日本の時差+9:00ぶんだけさらに加算されるから起こるみたい。 というわけで、ハードウェアクロックはローカル時間ですよということを明示してあげればよいらし…

JDK5で各種ダンプを取るシェルスクリプト

世はJDK6の時代ですが、JDK5の環境でデッドロックなんぞが起こってしまったので急遽ダンプを取るなどした。jmapやjstackのオプションがJDK6から便利になりすぎてて少し泣いた。 あと、会社のPCのHDDが死にそうで、こっちはマジにビビリながら作業した。 dump…

rootでもrmコマンドで消せないファイルを作る

Google先生から捕捉されないようにする - tanamonの日記 この記事で作ったrobots.txtなんぞは誰にも書き換えられたくないので、簡単に消されない方法を調べた。 chattrを使えば簡単に消せないファイルが作れるらしい。 テスト準備 # mkdir /tmp/testdir # cd…

CentOSでMTAを切り替える

そもそも今何のMTAを使っているのか? # ll /etc/alternatives/ | grep mta lrwxrwxrwx 1 root root 27 3月 2 22:13 mta -> /usr/sbin/sendmail.sendmail lrwxrwxrwx 1 root root 41 3月 2 22:13 mta-aliasesman -> /usr/share/man/man5/aliases.sendmail.5.…

FTPサービスを起動させたのにログインできない時の対応

ホスト xxx.xxx.xxx.xxx (21) に接続しています. 接続しました. 220 (vsFTPd 2.0.5) >USER test 331 Please specify the password. >PASS [xxxx] 500 OOPS: cannot change directory:/home/test >USER test 500 OOPS: child died ログインできません.こんな…

LinuxでプロセスIDをgrepして引数に渡す方法

某社の案件でアプリが挙動不審なため、Javaのスレッドダンプを定期的に取ろうという話になった。JRockitでは以下のようなコマンドを実行すると標準出力にダンプしてくれるのだけど、 $ jrcmd <pid> prints_thread 引数のプロセスIDをスマートに取得する方法がぱっ</pid>…