Munin の設定ファイルやプラグインを変えて、必要なグラフだけを表示するようにしてみた。
基本的にはプラグインへのシンボリックリンクを削除したり作成するだけで、グラフの数は自由に変えられる。実際のやり方をメモっておく。
インストールの仕方や基本設定はCentOS に Munin をインストールする、Munin を Debian にインストールするを参考。
echo filename | while read i do echo $i done
SQLServer で CSV 形式のデータファイルを import/export するには、 bcp コマンドを使用すると便利です。フォーマットファイルというのを指定することで、型の定義も可能で非常に便利。
またインポートは、 osql で BULK INSERT クエリを発行することでも対応できます。
SQLServer でデータを backup/restore するには osql で BACKUP/RESTORE クエリを発行することで行えます。
作成するダンプファイルにパスワードをつけることも可能です。
SQLServer で文字列検索を実行した際にアルファベットの大文字小文字やひらがなカタカナを区別しなかったりした時には、照合順序(Collation)が正しくない場合がある。
一通りの照合順序の設定方法と意味などをまとめておく。
this.Response.AddHeader("Content-Disposition","attachment;filename=CSVData.csv");
this.Response.AddHeader("media-type","application/octet-stream");
this.Response.WriteFile(csvFilelPath);
this.Response.End(); string strDir = "C:\\";
string strFile = "test.csv";
OleDbConnection myConn = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ strDir + ";Extended Properties='TEXT;HDR=NO'");
myConn.Open ();
OleDbDataAdapter sqlda = new OleDbDataAdapter ("SELECT * FROM " + strFile, myConn);
DataTable dtbl = new DataTable ();
sqlda.Fill (dtbl);
dgrdCsv.DataSource = dtbl;
myConn.Close ();ちなみに、読み込む CSV のフィールドタイプを指定した場合は、 schema.ini を用意して CSV と同じフォルダにおいておく。
[filename.csv] ColNameHeader=True Format=CSVDelimited Col1=user_id Integer Col2=user_name Char Width 32 Col3=notes LongChar
といった感じ。はじめの一行目が CSV ファイル名をセクションで指定して、二行目がヘッダの有無、三行目はデータファイルの書式(ここでは CSV )を指定してます。それ以降が実際のカラムの指定。
public void Page_Load(Object sender, EventArgs e)
{
RegisterOnSubmitStatement ("submit", "return window.confirm ('削除します。よろしいですか?');");
もしくは、特定のボタンのみに登録したい場合は以下も有効。
public void Page_Load(Object sender, EventArgs e) {
Button1.Attributes["onclick"] = "return window.confirm ('削除します。よろしいですか?');"; ASP .NET はコントロールデータが全て一つの BASE64 エンコードされた __VIEWSTATE っていうフォーム変数に格納されてるんだけど、それ用のソフト等を使えば内容が閲覧できるし、書き換えることもできる。
これを暗号化して、改ざんされた際にはエラー処理するようにするようにするには、 web.config で Page.EnableViewStateMac を有効にすればいい。
<configuration> <system.web> <machineKey validation="3DES" /> <pages enableViewStateMac="true" /> </system.web> </configuration>Mac stands for "message authentication check".
HTML で、限られたスペースに、可能な限りのドキュメントを入力してスクロールバーで制御したい場合があります。 iframe や textarea でも行えますが、スタイルシートで overflow を使用してスクロールバーを出すこともできます。
例えば幅 400x40 のスクロールバーつきエリアを作成するには以下のようにします。
<div style="overflow: auto; width: 400px; height: 40px">
ここに入力したいドキュメントを書く。
</div>
実際どのようになるかというと、このように入力したドキュメントの長さに応じて、必要なスクロールバーを自動的に表示してくれます。当然 textarea とは違いタグも書けまし、 iframe みたいに別の HTML を作成する必要もありません。
MRTG みたいなツールで温度とかも簡単にグラフ化できるって専らのうわさだったので入れてみた。
ダウンロードはここ。
http://munin.projects.linpro.no/
Download リンクから munin と munin-node の最新版 RPM パッケージを入手。
CentOS には存在しない (Redhat にも存在しない) パッケージを要求されたりして結構面倒でした。
多分一番簡単にファイル内の行を削除するのは sed コマンドです。
その他にも grep コマンドを使用したりしても十分行えます。
sed で abc を含む行を全削除するには以下のコマンドを実行します。
$ sed '/abc/d' input.fileパイプで渡すこともできます。
$ cat input.file | sed '/abc/d'grep コマンドで削除するには以下のコマンドです。正確には削除してるわけで無い気がしますが。
$ grep -v abc input.filegrep の -v オプションは文字列を”含まない”行を出力するためのオプションです。
Windows で作成したテキストファイルの改行コードが CRLF で、この内の CR の部分を除去して、 Unix にあわせたい場合に便利なコマンド。
置換などに用いる tr コマンドを使う。
$ tr -d "\r" < input.file > output.fileただしこの tr コマンドの -d オプションは注意が必要で、指定した「文字列」を削除するんじゃなくて、指定した「charactors」を全て削除することです。なので、
$ tr -d "abc" < input.file > output.fileとやると、全ての a と b と c が削除されることになります。文字列を削除したりしたい場合は sed コマンドがおすすめです。
> subst P: C:\Util解除するときは -D オプションをつける。
> subst P: /D P:
Apache でローカルアドレスや特定のサイトからのアクセスをログに残さないようにするには、環境変数を使ってやると便利。
まずは /etc/httpd/conf/httpd.conf に特定のアドレスからのアクセスに環境変数を設定するように以下のように追記。
例えば 192.168.0.0/24 からのアクセスの場合。
SetEnvIf Remote_addr 192.168.0. nologで、 CustomLog 設定を以下のように変更すれば終了。
CustomLog logs/access_log combined env=!nolog
<div id = "tarishou">test</div>JavaScript は以下のようになります。
var ctl = document.getElementById ("taishou");
if (ctl.style.display == "none")
ctl.style.display = "inline";
else
ctl.style.display = "none"; # yum install postgresql-serverレポジトリへの追加方法は、 CentOS に PHP5 をインストールする を参考。
> chkdsk C:
<cfcontent type = "image/gif" file = "path/to/file" />
Apache2 で IP やユーザごとに同時接続数や帯域を制限するために、 mod_cband っていうモジュールを使ってみた。
かなり細かい設定もできるし、ステータス画面は非常にシンプルだけど分かりやすいのでおすすめです。
環境は CentOS-4.4 でパッケージは無さそう。後で、ライセンスだけ確認して RPM 作るかも。
ダウンロードは以下からできる。
http://cband.linux.pl/
Coldfusion で Form 内に Dynamic variable name を使った場合、その入力内容の取得したい場合 Evaluate 関数を使う。
例えば abc_ という固定 name に通し番号の 1, 2, 3 などを付加した場合を考える。
for (i = 1; i LTE < 5; i = i + 1)
{
abc[i] = Evaluate ("form.abc_" & i);
} Coldfusion で、例えば form タグ内に同じ name 属性を持った要素を複数含んでいた場合、 Form 構造体にはその名前のリストが作成されます。
言葉で伝わりづらいので具体的に以下のコードを見てください。
<form action = "./" method = "post"> <input type = "checkbox" name = "sameopt" value = "1" /> <input type = "checkbox" name = "sameopt" value = "2" /> <input type = "submit"/> </form>name 属性が sameopt チェックボックスが二つあります。このフォームでチェックボックスの両方にチェックをし submit すると、 Form.sameopt は以下のようにセットされます。
1,2,区切りのリスト構造です。 PHP なら、
<form action = "./" method = "post"> <input type = "checkbox[]" name = "sameopt" value = "1" /> <input type = "checkbox[]" name = "sameopt" value = "2" /> <input type = "submit"/> </form>$_POST["sameopt"][0] と [1] とい感じで配列になる感じです。で、このリストを一つずつ処理するには、 list 関数を使ったり、 cfloop の list 指定で処理したりするといいでしょう。具体的には、
<cfloop index="i" list="#Form.sameopt#">という感じです。
cpan2rpm を使うと、 perl モジュールを RPM としてインストールできます。
以下からパッケージをダウンロードしてインストールします。
http://perl.arix.com/cpan2rpm/
↑がリンク切れてたら、↓から RedHat 4 用のも利用可。
http://atrpms.net/name/cpan2rpm/
rpm -ivh cpan2rpm-2.027-1.noarch.rpm
$ for file in *.htm; do mv $file `basename $file htm`html; done
SELECT current_date() + '1 weeks' FROM table;みたいな感じです。
SELECT setval ('seq_num', 100);
次のシーケンス番号をつけて挿入するには nextval 。
INSERT INTO table VALUES (nextval ('seq_num'), 'value');
その結果のシーケンス番号を取得するには、セッションを切らない内に currval 。
SELECT currval ('seq_num'); Smarty で年月日を表示するドロップダウンを作るには html_select_date というカスタム関数が便利。
これを使うといちいち select だ option だ、何日前を表示だ、とか考えなくてする。実際のコードはこんな感じ。
{html_select_date year_empty="-" month_empty="-" \
day_empty="-" prefix="start" start_year="-4" time=$start_time}
こうすると、ドロップダウンのトップ項目に - を含んだ 4 年前からのドロップダウンが生成され $start_time がデフォルト値になる。
prefix は name に start を付加させて startYear, startMonth とかなるような感じ。詳細は Smarty Documentation参照。
通常 PHP は Apache にモジュールとして取り込まれている。
これを cgi として動かしたいときには apache の設定ファイルに変更を加える必要がある。
PHP を cgi として動作させると、 suExec も有効にさせることができる。
ただしデメリットもあり、動作が若干遅くなる。
環境は以下のとおり。
CentOS-4.4
PHP-5.1.6
$ ssh host -l username -L localport:remotehost:remotehostport
javac -g:none *.java
AWStats は標準設定では月別 (Monthly) の解析しか行わないが、実は時間別や日別にも対応している。
実装は非常に簡単で、定期的に行っている更新スクリプトに -DatabaseBreak を付け加えるだけでよい。すると月別データベースとは別に時間別や日別のデータベースも作成される。
#HTMLCodeFormat (form.inputvalue)#
#HTMLEditFormat (form.inputvalue)#
Debian の Apache2 でバーチャルドメインを行うには、 /etc/apache2/sites-available/ ディレクトリにそれようの設定ファイルを作成し、 /etc/apache2/sites-enabled/ にシンボリックリンクを作る。
# apt-get install munin munin-node設定はCentOS に Munin をインストールする参照。
Coldfusion と SQLServer の環境で、最後に INSERT した際に自動的に発番される ID (シーケンス、オートナンバー)を取得するには @@Identity をうまいこと使ってやります。
仮想 X サーバと firefox などのブラウザ、 ImageMagic を使用して実現します。
環境は以下のとおりです。
CentOS-4.4
xorg-x11-Xvfb
firefox
ImageMagick
全部 yum でインストールできたと思います。
runas コマンドを使用することで、 administrator を含む特定のユーザ権限でプログラムを実行できます。
コマンドプロンプトを開いて実行します。
C:\>runas /user:administrator cmd
C:\>convert C: /fs:ntfs
pam 認証を使用して、指定したユーザ以外は su できないようにします。 以下の動作を行ってください。 /etc/pam.d/ の su ファイルを修正します。
Linux のコンソールのタイムアウト時間を設定するには /etc/ の profile をに TMOUT 環境変数をセットすることで行います。
/etc/profile はログインした全てのユーザに適用される設定ファイルです。
# vi /etc/login.defs
PASS_MIN_LEN 5
sh スクリプト(sh に限らずコマンドライン全般)を作成してる際に、
ユーザにパスワードなどを入力させる事がよくあります。
そんな場合、入力されたパスワードはコンソール上には表示させないようにする必要があります。
そんな動作を実装するためには stty を使用します。
String command[3] = "ls", "-l", "-a"; Runtime rt = Runtime.getRuntime (); Process pr = rt.exec (command); InputStream is = pr.getInputStream ();
DBMS には隔離レベルと言うのがあって、 PostgreSQL の場合少し特殊みたいです。
デフォルトでは Read Committed なんだけど、 Transaction 中の Update 後に、他の Transaction による SELECT は Commit を待たずに実行できるようだ。
grep は基本的に s/regex/string/ みたいな文法で '/' をそのまま扱いたいときは \/ と書かなければだめ。
でもこれを s@regex@string@ みたいな書き方をすることで '/' をそのまま扱える。
cadaver というツールが使えます。
以下のようにして Web サーバに接続し、様々なコマンドが使用できます。
$ cadaver http://example.com/webdavdir/
$ pg_dump -u dbname $gt; dbname.out
$ createdb dbname $ psql -e -f dbname.out dbname
ドメイン名を変更した際に、古いドメインにアクセスしてきたユーザを全て新しいドメインのページにリダイレクトしたい場合があります。
そんなときは、 apache の RedirectMatch を使います。
OVAL っていうのは、 Open Vulnerability and Assessment Language の略で、脆弱性を検査するためのオープンな言語です。
http://oval.mitre.org/その昔は SQL チックな記述言語だった気がするんですが、久々に見てみたら流行の XML になってた。
# init 1 # tune2fs -j /dev/hda1変更後は /etc/fstab の変更も忘れずに。
tDiary に namazu 検索を入れるには、 namazu をインストールして、
必要な tDiary のプラグインの導入、それから cron などで定期的に namazu の index を構築してやる必要がある。
/(?<!hoge)\r\n/
$ javac -target 1.1 hoge.java
dbname=# SELECT * FROM pg_database;
dbname=# \d