2009年12月21日月曜日

[cmd] gzipファイル展開せずに特定のファイルを取得する

仕事で使用したコマンドを記録しておきます。

$tar -tvf apache2.0.58.20091214.tar.gz

apache2.0.58.20091214/logs/

$tar -xvf apache2.0.58.20091214/logs/

$gunzip -c apache2.0.58.20091214.tar.gz | tar -xvf - apache2.0.58.20091214/logs/operation.log


$gunzip -c apache2.0.58.20091214.tar.gz | tar -xvf - apache2.0.58.20091214/logs/operation.log


以上です。

2009年12月17日木曜日

[MySQL] テーブルのデータ件数をカウントする

# 最もシンプルなSQL
select count(*) from table_name;

全体の行数を取得することができます。

# NOT NULLなカラムがある場合はカラム名を指定する方が良い
select count(culumn_name) from table_name;

カラム名を指定する方がパフォーマンス的に有利です。
ただし、count関数はカラムにNULLがある場合、NULLを除いた行数を集計するため、確実にNOT NULLなカラムを指定する必要があります。


以上です。

2009年12月12日土曜日

[Maintenance] Apacheログのリネーム

Apache accessログをmvでリネームしても、Apacheはリネーム先ファイルに書き込もうとします。

これは、Apacheのaccess_logファイルは常にファイルオープン状態で、
イベントが発生したタイミングで書き込みのみを行っている為です。

リネーム後にApacheを再起動して、リネーム先ファイルを移動する必要があります。


以上です。

2009年11月23日月曜日

Xoops CSSまとめ

xoops/xoops.css


theme/style.css
body {
background: #FFFFFF;
color: ;
fontfamily: ;
font: ;
}
h1,h2,h3,h4,h5,h6,h7 {}
#header {}
#usermenu {}
#globalnavi {}

/* テーブルヘッダと入力欄をまとめて定義 */
tr.author td,
tr.title td,
tr.category td,
tr.authority td,
tr.context td,

tr.title input {
width: 200px;
}
tr.context input {
width: 400px;
}

/* 必須項目 */
tr.author th,
tr.title th,
tr.category th,
tr.authority th,
tr.context th,
{
background-image: url(must.gif)
background-repeat: no-repeat;
background-position: right;
}
/* 必須でない */
tr.upload th,
tr.upload td,
{
background: #e3e9cf;
}

#whatnew {}
.whatnewtab {}

#today {}
#footer {}


/* どうしてもモジュールごとに異なる部分だけ記述(理想は使わないこと) */
./modules/module_name/style.css
#module_name table th tr td {}
td input {}

calendar
piCal.css

2009年11月5日木曜日

[Tool] CSSツール

Webデザインで役に立つツールを記録しておきます。

ウィンドウの要素から色を抽出し、コードを表示してくれるツール
YunaColor

ウィンドウ内の要素を測ることができるものさしツール
ものさしX


以上です。

2009年10月21日水曜日

[Env] sarのインストール

sarを使用するにはsysstatパッケージをインストールする必要があります。

RedHatへのインストール(cat /etc/issueでバージョン確認)
# yum install sysstat (RHEL 5 以降)

# up2date -u sysstat? (RHEL 4, 3, 2.1 以前)

※パッケージをダウンロードしてインストールされたい場合は、下記 URL の情報をご参照ください。
http://www.sios.com/product/rhel/usersite/faq/faq4-36.html


sysstat パッケージは、インストール後に設定をするべき項目は特にない。

インストールをしますと、/etc/cron.d/sysstat による cron の設定が行われ、cron による自動実行により、情報が /var/log/sa/ 配下に保存される

収集したリソース情報のファイルは、デフォルトで 7日間分保存されます

デフォルトでは 7日間分のファイルが保存されるように設定されています。
この期間の設定は、/usr/lib/sa/sa2 スクリプト内の HISTORY 変数で定義されています。

# grep HISTORY /usr/lib/sa/sa2
HISTORY=7 <-------------------<修正する場合はここを変更します>
find /var/log/sa/ \( -name 'sar  -o -name 'sa  \) -mtime +"$HISTORY"
-exec rm -f {} \;

インストール作業録
cat /etc/issue
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Kernel \r on an \m

yum install sysstat

インストールエラー
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Parsing package install arguments
No package sysstat available.
Nothing to do

ネットワークに繋がっていないから
http://www.sios.com/product/rhel/usersite/faq/faq4-36.htmlからパッケージをダウンロードする

ネットにパッケージがない
rpmfind sysstat
1) rpm -ivh  -- 新規インストール
(2) rpm -Uvh  -- アップデート or 新規インストール
(3) rpm -Fvh   -- アップデートのみ
(4) rpm -e?? <パッケージ名>   -- 削除
パッケージダウンロード
http://pagesperso-orange.fr/sebastien.godard/download.htm

rpm -ivh sysstat-9.0.5-1.i586.rpm
エラー: 依存性の欠如:
libc.so.6(GLIBC_2.7) は sysstat-9.0.5-1.i586 に必要とされています
rpmlib(FileDigests) <= 4.6.0-1 は sysstat-9.0.5-1.i586 に必要とされています block 4096byte * block数 l


以上です。

2009年10月15日木曜日

[Env] Linux Alias設定について

エイリアスは,ログイン時に,bashが起動され,その過程で設定されます。
※ 各ユーザのログインシェルは /etc/passwd に書かれています。

rootにログインすると,以下の順でスクリプトが実行されます。

・/etc/profile を実行

・/etc/profile.d/*.sh を実行

・/root/.bash_profile を実行

・/root/.bashrc を実行

最後の.bashrcに「alias cp='cp -i'」というエイリアスが書かれています。

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

一般ユーザの.bashrcには,このエイリアスは書かれていないことから,

OSの制限として, ルート権限により,無制限にファイルコピー,削除ができないようになっていると思われます。

※一般ユーザにも制限を適用する場合は/etc/profile, /etc/bashrcに記述するか/etc/skelに記述してしまえば良いです。


以上です。

2009読書リスト

8月
・レバレッジ・シンキング 本田直之
・仕事が3倍できる時間管理術
・陽気なギャングの日常と襲撃 伊坂幸太郎
・Gボーイズ冬戦争 石田衣良

9月
・会計天国
・LPIC Level1 試験対策
・業務システムのための上流工程入門
・RailsによるアジャイルWebアプリケーション開発

2009年10月14日水曜日

[OSS] 気になるオープンソースまとめ

いま気になっているオープンソースについてまとめておきます

Plone: アメリカで人気のCMS(他にも山盛りだが。。。)
Plone

Puppet: システム運用、デプロイ系
Puppet
Puppet記事

Maria: 次世代のMySQLストレージエンジン
Maria
記事


以上です。

2009年10月5日月曜日

[MySQL] バックアップと復元

MySQLのバックアップと復元コマンドをまとめました。
データベース名を指定してバックアップする:
mysqldump -u user_name -p -q db_name > backup.sql;

バックアップを復元する:
mysql -u user_name -p db_name < backup.sql;

テーブル名を指定してバックアップする:
mysqldump -u user_name -p -q db_name table_name > backup_table.sql;


以上です。

[MySQL] いろいろな実行手法

ストアドプロシージャを使用することで、SQLをファイル読み込み、実行できます(MySQL5.0~)

#/bin/sh
mysql -u username -p -D データベース < filename.sql(sql記述のみのファイル)



参考URL:
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5d.html

ヒアドキュメントを使用する方法です。
#!/bin/sh

mysql -u username --password='password' falcon << EOF use falcon; select c_date_ss from falcon.eagle_log; EOF 結果を格納する RESULT=`mysql -u username --password='password' falcon << EOF use falcon; select c_date_ss from falcon.eagle_log; EOF`


Perlのドライバを使った方が扱いやすいかも。ということで書いてみました。

#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $conn = DBI->connect(
"dbi:mysql:dbname:localhost", "username", "password") or die "Cannot connect\n";

my $cursor = $conn->prepare(
"SELECT column1, coulumn2 FROM table_name WHERE column1=''") or die $conn->errstr;

$cursor->execute or die $conn->errstr;

while (my ($name, $region) = $cursor->fetchrow_array()){
print "$name\t$region\n";
}

$conn->disconnect;

以上です。