2008-01-01から1年間の記事一覧

Apacheのディフォルトのcharsetを無効にする

Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下のようなディフォルトcharsetが 設定されている場合、これを無視するには値をOffに変えればOK. ;AddDefaultCharset UTF-8 AddDefaultCharset Off httpd.confを変更したくない時は.htaccessに"AddDefa…

SSHのDSA公開鍵を設定する (パスフレーズ無し)

ssh-keygenコマンドでクライアント側(アクセスするサーバー)で公開鍵&秘密鍵を生成 リーモート側(アクセスされるサーバー)に公開鍵を設定 クライアント側の設定 「-N」オプションはパスフレーズの指定で、""でパスフレーズ無しにできる。 # ssh-keygen …

Linuxのディストリビューションを調べるコマンド

メジャーなディストリビューションでは大体動くみたいです。 lsb_release -a 結果 LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch Distributor ID: CentOS Description: CentOS release 4.5 (Final) Release: 4.5 Code…

サブバージョンの管理方法

svn

サブバージョンの管理はtrunk、brunches、tagsの3つのファイルで行う。 trunk 開発のメインストリーム brunches プロジェクトの分岐 tags 実装時などに作るタグ(スナップショット) リポジトリの例 /prj1/trunk/ /prj1/brunches/b1 /prj1/tags/STABLE /prj…

tarコマンドで圧縮、解凍

TAR形式+GZIP形式の".tgz"や".tar.gz"gzipで解凍してからtarで取り出す。 gzip -dc filename | tar xvf - zxオプションでもOK。 tar zxvf filename tar over sshで転送する。 tar cvjf - my_dir | ssh user@example.com "(cd /tmp; tar xjf -)" Reference:…

SubversionのリポジトリーブラウザをURL指定して開くバッチプログラム

「start "" プログラム名」を使わないとDOSウィンドウが起動したプロセスが終るまで開いたままになる。 @echo off start "" "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:repobrowser /path:"svn://example.com/trunk"

PHP4とPHP5のDOM操作: PHP5への移行

PHP

PHP4とPHP5では以下のようにDOMのクラスや関数の名前などがだいぶ違う・・・ = '5'){ $dom = new DOMDocument(); $dom->load($xml); $root = $dom->documentElement; foreach($root->getElementsByTagName("tag1") as $section){ foreach($section->getEleme…

SSHログイン時のコマンド実行

sshでコマンドをリモート実行すると、sshを実行したサーバーに戻ってきてしまう。 # hostname local.machine # ssh user@host "cd /home/user/test" # hostname local.machine しかし"-t"オプションとコマンドのあとに" && /bin/bash"を追加するとリモートに…

Bashのforループ、if文

普段Perlに頼り切ってるのでシェルスクリプトの勉強も開始 array=(a b c d e f) for item in ${array[@]}; do echo $item done 1から100までループ for i in `seq 1 100`; do echo $i done if文はこんな感じ [注] []の両内側にスペースが必要 if [ $var == '…

SCPの巧妙な罠

今日気が付いたSCP(cpコマンドでもそうだが)の微妙な動作・・・ 以下がその違い これは"/tmp/a"フォルダーの中にdir1フォルダーとその中身がコピー my_dir=dir1 scp -r $my_dir example.com:/tmp/a これは"/tmp/a"フォルダーの中にdir1フォルダーの中身が…

Perlのsystem関数で外部コマンドを呼ぶときのエラーキャッチ

バッククォートで呼ぶとエラーが起きたどうか分からないのでsystem関数を使う。 my $cmd = 'ls test_dir'; if( (system "$cmd") != 0){ die "Error detected\n"; } エラーが起きたらdieする関数 sub run_cmd{ my ($cmd) = @_; print "$cmd\n"; if( (system "…

PHPで改行を削除

str_replace関数で可能だが $string = str_replace("\n", "", $string); $string = str_replace("\r\n", "", $string); $string = str_replace("\r", "", $string); 日本語処理を考えるとmb_ereg_replace関数の方が妥当。 $string = mb_ereg_replace("\n", "…

Sqlite2をソースインストールする

CSVをインストール # yum -y install cvs sqliteをチェックアウト # cd /usr/local/src/ # cvs -d :pserver:anonymous@www.sqlite.org:/sqlite login Logging in to :pserver:anonymous@www.sqlite.org:2401/sqlite CVS password: (パスワードはanonymous) #…

sendmailやpostfixの設定

sendmailをインストール yum -y install sendmail postfixをインストール yum -y install postfix MTAを切り替えるためのsystem-switch-mailプログラムをインストール yum -y install system-switch-mail MTAを切り替える system-switch-mail

MySQLサーバーでクエリーログを書き出す設定をする

以下を"/etc/my.cnf"追加 log=/var/log/mysql-queries.log 空のログファイルを作ってMySQLサーバーを再起動 touch /var/log/mysql-queries.log service mysqld restart

rpmコマンドを使う

インストールされているパッケージを調べる rpm -qa mysql-serverを削除 rpm -e mysql-server

PerlのUTF-8処理

UTF-8のテキスト処理をする時はまず入り口でUTF-8フラグを立てる。 最後の出力(出口)ではUTF-8フラグを落とす。 my $str = "日本語"; #UTF-8フラグを立てる utf8::decode($str); #UTF-8かどうかをチェック print utf8::is_utf8($str); #・・・なにかの処理…

PerlのDOM操作

XML::DOMモジュールを使ってXMLをパース XML タイトル1 作者B 作者C 2004/10/21 Perlコード: の値を取り出す。 use strict; use XML::DOM; my $dom = new XML::DOM::Parser; my $doc = $dom->parsefile('books.xml'); my $nodes_book = $doc->getElementsBy…

Perlで日本語メールを送信する。

SubjectとBodyをISO-2022-JP (JIS)に変換、 プラスSubjectをBase64エンコードしないと文字化けする。 (注) 最近のメーラーのほとんどはUTF-8のメールを認識できる。*以下のファイルはUTF-8で保存 use strict; use MIME::Base64; use Encode qw(encode); my …

MySQLのテーブル構造のみを他サーバーにコピー

mysqldump --no-dataでテーブル構造をダンプして、パイプでmysqlコマンドにつなぐ。 mysqldump -uuser -ppassword --no-data db_name [table_name] | mysql -h example_host.com -uuser -ppassword db_name [注] 下記のように前もって空のデータベースを作っ…

MySQLサーバーにアクセスできるユーザーを追加する。

ホスト: 全て(localhost以外) ユーザー名: user パスワード: password grant all privileges on *.* to user@'%' identified by 'password' with grant option; localhostを設定するには grant all privileges on *.* to user@'localhost' identified by '…

Windowsの環境変数%USERPROFILE%の値をC++から取る

以下がソースコード #include #include #include using namespace std; int main() { char profilepath[250]; ExpandEnvironmentStrings("%userprofile%",profilepath,250); cout getch(); return 0; }

Windows Vista/Server2008でレジストリのパーミッションを変更する。

Regini.exeで変更できる。設定で使う数値は以下のとおり 1 - Administrators Full Access 2 - Administrators Read Access 3 - Administrators Read and Write Access 4 - Administrators Read, Write and Delete Access 5 - Creator Full Access 6 - Creato…

サブバージョンの使い方ノート

サブバージョンでコミットする前にどのファイルが変更されるかをチェック svn status -u ログを過去5件見る svn log --limit 5 リビジョン1234を指定して、その詳細を表示 svn log -vr 1234 過去のリビジョンにリポジトリを戻す。 [注] ワーキングコピーの中…

C++で日付を取得する

time.hをインクルードする。 #include int main(){ struct tm *date; time_t now; int year, month, day; int hour, minute, second; time(&now); date = localtime(&now); year = date->tm_year + 1900; month = date->tm_mon + 1; day = date->tm_mday; ho…

xargsコマンドがすごすぎる

こんなUNIXコマンドがあったなんて・・・ xargsで複数の結果をパイプでつないで随時実行できる。ただし空白や特殊文字を含むファイルを正しく処理するため、findコマンドには必ず「-print0」オプションを付け「xargs -0」で受け取るようにする。 PWDのサブフ…

IIS6.0のSMTPのホームディレクトリの場所を変更

adsutil.vbsというVBScriptファイルを使用する。 まずはSMTPサービスを停止 net stop "Simple Mail Transfer Protocol (SMTP)" Dropディレクトリを変更 cscript C:\inetpub\AdminScripts\adsutil.vbs set smtpsvc/1/dropdirectory "D:\Inetpub\mailroot\Drop…

nkfコマンドで文字コードを変更

nkf(net kanji filter)で文字コードを変更 EUCに変更 cat file | nkf -e >> file.euc S-JISに変更 cat file | nkf -s >> file.sjis

Perlワンライナーで正規表現の文字列抽出

.cppファイルを探して行数でソート。 Perlのワンライナーで行数を抜き出す。 find . -name "*\.cpp" -exec wc -l {} \; | perl -ne 's/ .*//; print' | sort -gr cutコマンドでもいける find . -name "*\.cpp" -exec wc -l {} \; | cut -d " " -f 1 | sort -…

findコマンドの便利な使い方

-maxdepth: サブディレクトリーを無視した検索 find . -maxdepth 1 -exec 結果を他のコマンドに渡す "-type d"オプションでフォルダーのみをfind "du -s"で合計サイズのみを表示 {}に結果が入る \;は-execオプション終了の印 find . -type d -name sodomojo …