Linux (直近のみ表示)
自動でダウンロードする方法は前々回の記事、cygwin の cron に移植した記録は前回の記事を参照してもらうこととして、
今回は ApacheLogViewer 用に整形します。
と言っても2列目をドメインに差し替えるだけですが。
なので、ドメインが1つだけの契約なら関係ありません。
ロリポップのくれたサブドメインと、独自ドメインと、独自ドメインのサブドメインがあるような状況を想定しています。
#!/bin/sh
cd /home/lolipop_log # .gzが日々落ちてくるディレクトリを指定
out=/home/lolipop_log/alv # 解凍したログを出力するディレクトリ
suffix=`date +"%s"`
suffix=`expr ${suffix} - 86400` # 前日のログを処理するので.
suffix=`echo ${suffix} | perl -ne '@t=localtime($_);printf("%d%02d%02d",@t[5]+1900,@t[4]+1,@t[3])'`
# バーチャルドメインを列記。
for domain in dphoge.lolipop.jp www.foo.net bar.net ;do
zcat ${domain}.${suffix}.gz | awk -vVAL=${domain} '$2=VAL {print $0}' > ${out}/${domain}.${suffix}.log
done
これを適当な名前で保存 -> chmod +x –> crontab –e で、ログを落としたあとの時刻に登録。
crontab –l するとこんな感じになっています。
SHELL=/bin/sh
45 23 * * * /home/lolipop_log/dl_lolipop_logs.sh
55 23 * * * /home/lolipop_log/format.sh
名前
tcptrace - TCPコネクション分析ツール
書式
tcptrace [options] filename
説明
tcptraceはコマンドライン上でtcpdumpファイル(または標準入力から)の詳細を
取得し、コネクションの概要を生成する。
オプション
出力形式オプション
-b 簡単な出力形式
-l 詳細な出力
-r print rtt statistics (大きなファイルは遅くなる)
-W ウィンドウサイズの予想を報告する (普通役に立たない)
-q 出力しない (モジュールの出力だけ欲しい場合)
グラフ描画オプション
-T スループットのグラフを作成する (10セグメント以上の平均、-Aを参照)
-R Round Trip Timeのグラフを作成する
-S タイムシーケンスのグラフを作成する
-N 輻輳ウインドウのグラフを作成する (ネットワーク上の輻輳データ)
-F セグメントサイズのグラフを作成する
-G すべてのグラフを作成する
出力形式の詳細オプション
-D 10進数で表示
-X 16進数で表示
-n ホストまたはサービス名の名前解決をしない (高速)
-s 短い名前を使う (リスト "picard.cs.ohiou.edu" は "picard" になる)
コネクションフィルタリングオプション
-iN コネクション番号Nを無視する (複数指定可能)
-oN[-M]
コネクション番号Nだけ(またはNからM)を対象にする。引数は複数指定可能。
Nは番号よりもむしろ、代わりにファイルからリストを読む。
-c 完結していないコネクション(SYNとFINが見つからない)を無視する
-BN 分析の最初のシーケンス番号 (デフォルト 1)
-EN 分析の最後のシーケンス番号 (デフォルト ファイルの最後)
グラフ描画の詳細オプション
-C カラー描画出力
-M モノクロ描画出力
-AN スループットグラフでN個のセグメントを平均する。デフォルトは10。
-z 0軸オプション:
-z 時間軸を時刻ではなく0からでプロットする (下位互換)
-zx 時間軸を時刻ではなく0からでプロットする
-zy シーケンス番号を0からでプロットする (タイムシーケンスグラフ専用オプション)
-zxy X軸、Y軸とも0からでプロットする
-y スループットグラフで、瞬間スループットの(黄色の)点を省略する
その他のオプション
-Z 生のrtt sample timesをファイルにダンプする
-p パケットの内容すべてを表示する (とても長くなり得る)
-P 選択したコネクションのパケットの内容を表示する
-t 進捗度をパケット数で刻む'tick' off the packet numbers as a progress indication
-v バージョン情報を表示して終了する
-w 警告を多く表示する
-d 動作中は合図する (デバッグ有効。さらに出力するには -d -d を使う)
-e 各TCPストリームの内容をファイルに抜き出す
-h ヘルプメッセージを表示する
-u 最小限のUDPの情報も表示する
-Ofile
マッチしたパケットをtcmdumpファイル 'file' にダンプする
+[v] -[v]の設定内容を逆にする (bool型用)
bool型の拡張オプション (未指定でもデフォルト値で動作)
--showsacks
タイムシーケンスのグラフでSACKブロックを表示する (デフォルト)
--noshowsacks
タイムシーケンスのグラフでSACKブロックを表示しない
--showrexmit
タイムシーケンスのグラフで再送をマークする (デフォルト)
--noshowrexmit
タイムシーケンスのグラフで再送をマークしない
--showoutorder
タイムシーケンスのグラフで破損をマークする (デフォルト)
--noshowoutorder
タイムシーケンスのグラフで破損をマークしない
--showzerowindow
タイムシーケンスのグラフでウィンドウが0をマークする (デフォルト)
--noshowzerowindow
タイムシーケンスのグラフでウィンドウが0をマークしない
--showurg
タイムシーケンスのグラフでURGENTビットがセットされたパケットをマークする (デフォルト)
--noshowurg
タイムシーケンスのグラフでURGENTビットがセットされたパケットをマークしない
--showrttdongles
Round Trip Time以外が生成した、特殊な記号付きACKをマークする
--noshowrttdongles
Round Trip Time以外が生成した、特殊な記号付きACKをマークしない (デフォルト)
--showdupack3
タイムシーケンスのグラフで3重複ACKをマークする (デフォルト)
--noshowdupack3
タイムシーケンスのグラフで3重複ACKをマークしない
--showzerolensegs
タイムシーケンスのグラフで長さが0のパケットを描画する (デフォルト)
--noshowzerolensegs
タイムシーケンスのグラフで長さが0のパケットを描画しない
--showzwndprobes
ウィンドウが0のProbeパケットを描画する (デフォルト)
--noshowzwndprobes
ウィンドウが0のProbeパケットを描画しない
--showtitle
グラフにタイトルを描画する (デフォルト)
--noshowtitle
グラフにタイトルを描画しない
--res_addr
IPアドレスの名前解決を行う (たぶん遅い) (デフォルト)
--nores_addr
IPアドレスの名前解決を行わない (たぶん遅いw)
--res_port
ポート番号の名前解決を行う (デフォルト)
--nores_port
ポート番号の名前解決を行わない
--checksum
IPとTCPのチェックサムを検証する
--nochecksum
IPとTCPのチェックサムを検証しない (デフォルト)
--dupack3_data
運ぶデータの重複したACKを3重複ACKとして数える
--nodupack3_data
運ぶデータの重複したACKを3重複ACKとして数えない (default)
--check_hwdups
ハードウェアの重複をチェックする (デフォルト)
--nocheck_hwdups
ハードウェアの重複をチェックしない
--warn_ooo
パケットのタイムスタンプが破損していたら警告を表示する
--nowarn_ooo
パケットのタイムスタンプが破損していても警告を表示しない (default)
--warn_printtrunc
パケットが分析には短すぎる場合に警告を表示する
--nowarn_printtrunc
パケットが分析には短すぎる場合でも警告を表示しない (default)
--warn_printbadmbz
0であるべきTCPの列が0でない場合に警告を表示する
--nowarn_printbadmbz
0であるべきTCPの列が0でない場合でも警告を表示しない (default)
--warn_printhwdups
ハードウェアの重複を警告する
--nowarn_printhwdups
ハードウェアの重複を警告しない (default)
--warn_printbadcsum
パケットのチェックサムが不一致なら警告を表示する
--nowarn_printbadcsum
パケットのチェックサムが不一致でも警告を表示しない (default)
--warn_printbad_syn_fin_seq
SYNかFINが異なるシーケンス番号で再送したとき警告を表示する
--nowarn_printbad_syn_fin_seq
SYNかFINが異なるシーケンス番号で再送したときでも警告を表示しない (default)
--dump_packet_data
パケットとTCP/UDPのダンプデータをすべて表示する
--nodump_packet_data
パケットとTCP/UDPのダンプデータを表示しない (default)
--continuous
連続的に実行し、概要を提供しない
--nocontinuous
連続実行はせず、概要を提供する (default)
--print_seq_zero
最初のシーケンス番号からのオフセットで表示する
--noprint_seq_zero
シーケンス番号をオフセットではなく本来の値で表示する (default)
--limit_conn_num
リアルタイムモードで一度に保持するコネクションに上限を設ける
--nolimit_conn_num
リアルタイムモードで一度に保持するコネクションに上限を設けない (default)
--xplot_all_files
生成したすべてのxplotファイルを最後に表示する
--noxplot_all_files
生成したすべてのxplotファイルを最後に表示しない (default)
--ns_hdrs
nsのuseHeadersフラグがtrueだと仮定する (IP+TCP ヘッダを使う) (default)
--nons_hdrs
nsのuseHeadersフラグがfalseだと仮定する
--csv
長い出力をカンマ区切りデータとして表示する
--nocsv
長い出力をカンマ区切りデータとして表示しない (default)
--tsv
長い出力をタブ区切りデータとして表示する
--notsv
長い出力をタブ区切りデータとして表示しない (default)
拡張変数オプション (未指定でもデフォルト値で動作)
--output_dir=``STR''
すべての出力ファイルが配置されるディレクトリ (default: '
--output_prefix=``STR''
この文字列がすべての出力ファイルの接頭辞 (default: '
--xplot_title_prefix=``STR''
すべての xplot ファイルに付けられる接頭辞 (default:
'
--update_interval=``STR''
リアルタイムモードで、更新する時間間隔 (default: '
--max_conn_num=``STR''
リアルタイムモードで一度に保持するコネクションの最大数 (default: '
--remove_live_conn_interval=``STR''
リアルタイムモードで、開いている接続が外されるまでのアイドルタイム (default: '
--remove_closed_conn_interval=``STR''
リアルタイムモードで、閉じている接続が外されるまでの時間間隔 (default: '
--xplot_args=``STR''
tcptrace から xplot を呼び出すときに渡す引数 (default: '
--sv=``STR''
長い出力を、STRに設定された値で分割する (default: '
含まれているモジュール
http Http分析モジュール
tcplib TCPLib分析モジュール
traffic トラフィック分析モジュール
slice 時間で区切ったトラフィック効率データ
rttgraph RRT分析モジュール
collie コネクション概要モジュール
realtime リアルタイムモードの例
モジュールの詳細なオプションは `tcptrace -hxargs` を使ってください。
フィルター変数:
フィルター変数の完全なリストは 'tcptrace -hfilter' を使ってください。
フィルター文法:
フィルターの文法は 'tcptrace -hfilter' を使ってください。
環境変数
オプションは、まず (存在すれば) $HOME/.tcptracerc を読み、そして (存在
すれば) 環境変数 TCPTRACEOPTS を読み、最後にコマンドラインから読む。
著者
Shawn Ostermann (ostermann@cs.ohiou.edu)
CREDITS
Thanks to Mark Foster (mafoster@george.arc.nasa.gov) for writing this
manual page. Thanks to Avinash Lakhiani (alakhian@irg.cs.ohiou.edu) for
updating it.
ファイル
ダンプファイル名
あとに続く引数を、ひとつ以上のファイル名になるように取ります(認識はされていない)。
ファイルは圧縮されていてもかまわない。設定は compress.h を参照。
ダンプファイルの名前が 'stdin' なら、ファイルではなく標準入力から読み込む。
関連項目
xplot tcptrace から出力された .xpl ファイルを調べる対話型ツール。
jPlot xplotのJava版。
翻訳者
http モジュール:
使いかた:
-xHTTP[P] HTTPのトラフィック情報を表示する (ポートP、デフォルトは80)
traffic モジュール:
使いかた:
-xtraffic"[ARGS]" 全体のトラフィックの情報を表示する
モジュールの引数書式:
-iS 統計の間隔を S(float) 秒に設定する。デフォルトは15.0。
-pP ポート番号Pの情報を含める
-pP1-P2 ポート番号が [P1-P2] の範囲の情報を含める
-p-P ポート番号Pの情報を除く
-p-P1-P2 ポート番号が [P1-P2] の範囲の情報を除く
-pSPEC,SPEC commas chain together specs
-G すべてのグラフを生成する
-A 'アクティブコネクション' のグラフを生成する
-B 'bps(bytes per second)' のグラフを生成する
-C 'opens and closes' のグラフを生成する
-H 'halfopen connections' のグラフを生成する
-K 'pure acKs/second' のグラフを生成する
-L 'losses per second' のグラフを生成する
-O 'open connections' のグラフを生成する
-I 'instantaneous open connections' のグラフを生成する
-P 'packets per second' のグラフを生成する
-Q 'idle (Quiet) connections' のグラフを生成する
-R[MIN[-MAX]]'round trip time' のグラフを生成する
with args, ignore samples outside MIN to MAX (in ms)
-T 'total data' のグラフを生成する。
-D[SECS] 長く持続したコネクションのグラフを生成する。「長く」のデフォルトの定義は60秒。
-d このモジュールのローカルデバッグを有効にする
例
-xtraffic" -p23" ポート23だけ
-xtraffic" -p1-1023" ポート1-1023だけ
-xtraffic"-p1-1023,-10-20 -L -O" ポート1-1023からポート10-20を除いたものだけ
ポート番号を明示的に指定しなければすべてのポートが含まれる。
With ANY spec, all ports are initially EXCLUDED
slice モジュール:
使いかた:
-xslice"[ARGS]" sliceのデータ情報を表示する
モジュールの引数書式:
-iS slice の間隔を S (float) 秒に設定する。デフォルトは15.0。
-d このモジュールのローカルデバッグを有効にする
-tb 日付と時刻を簡単な形式で表示
-tl 日付と時刻をUnix形式で長く表示
-tu 日付と時刻をエポック秒で表示 (secs)
-tU 日付と時刻をエポック秒で表示 (secs.usecs)
rttgraph モジュール:
使いかた:
-xrttgraph rttgraphトラフィックについての情報を表示
collie モジュール:
使いかた:
-xcollie"[-ln] コネクションの概要を提供する
-l attach labels
-n no labels please
realtime モジュール:
使いかた:
-xrealtime リアルタイム tcptrace の使い方を示すモジュールの例
フィルター変数:
変数名 種類 説明
----------------- -------- -----------------------
hostname STRING 完全修飾ドメイン名 (-n は除く)
portname STRING ポートのサービス名 (-n は除く)
port UNSIGNED ポート番号
mss SIGNED 最大セグメントサイズ
f1323_ws BOOL 1323 window scaling requested
f1323_ts BOOL 1323 time stampts requested
fsack_req BOOL SACKs requested
window_scale BOOL window scale factor
bad_behavior BOOL bad TCP behavior
data_bytes UNSIGNED bytes of data
data_segs UNSIGNED segments of data
data_segs_push UNSIGNED segments with PUSH set
unique_bytes UNSIGNED non-retransmitted bytes
rexmit_bytes UNSIGNED retransmitted bytes
rexmit_segs UNSIGNED segments w/ retransmitted data
ack_segs UNSIGNED segments containing ACK
pureack_segs UNSIGNED segments containing PURE ACK (no data/syn/fin/reset)
win_max UNSIGNED MAX window advertisement
win_min UNSIGNED MIN window advertisement
win_zero_ct UNSIGNED 0が広告されたウィンドウの数
min_seq UNSIGNED シーケンス番号の最小値
max_seq UNSIGNED シーケンス番号の最大値
num_sacks UNSIGNED number of ACKs carrying SACKs
max_sacks UNSIGNED most SACK blocks in a single ACK
segs UNSIGNED total segments
packets UNSIGNED total segments
syn_count UNSIGNED SYNs sent
fin_count UNSIGNED FINs sent
reset_count UNSIGNED RESETs sent
min_seg_size UNSIGNED smallest amount of data in a segment (not 0)
max_seg_size UNSIGNED largest amount of data in a segment
out_order_segs UNSIGNED out of order segments
sacks_sent UNSIGNED SACKs sent
ipv6_segs UNSIGNED number of IPv6 segments sent
max_idle UNSIGNED maximum idle time (usecs)
num_hw_dups UNSIGNED number of hardware-level duplicates
initwin_bytes UNSIGNED number of bytes in initial window
initwin_segs UNSIGNED number of segments in initial window
rtt_min UNSIGNED MIN round trip time (usecs)
rtt_max UNSIGNED MAX round trip time (usecs)
rtt_count UNSIGNED number of RTT samples
rtt_min_last UNSIGNED MIN round trip time (usecs) (from last rexmit)
rtt_max_last UNSIGNED MAX round trip time (usecs) (from last rexmit)
rtt_count_last UNSIGNED number of RTT samples (from last rexmit)
rtt_amback UNSIGNED number of ambiguous ACKs
rtt_cumack UNSIGNED number of cumulative ACKs
rtt_unkack UNSIGNED number of unknown ACKs
rtt_dupack UNSIGNED number of duplicate ACKs
rtt_nosample UNSIGNED ACKs that generate no valid RTT sample
rtt_triple_dupack UNSIGNED number of triple duplicate ACKs (fast rexmit)
retr_max UNSIGNED MAX rexmits of a single segment
retr_min_tm UNSIGNED MIN time until rexmit (usecs)
retr_max_tm UNSIGNED MAX time until rexmit (usecs)
trunc_bytes UNSIGNED number of bytes not in the file
trunc_segs UNSIGNED number of segments not in the file
num_zwnd_probes UNSIGNED number of zero window probes
zwnd_probe_bytes UNSIGNED number of window probe bytes
urg_data_pkts UNSIGNED Number of packets with URGENT bit set
urg_data_bytes UNSIGNED Number of bytes of urgent data
hostaddr IPADDR IP Address (v4 or v6 in standard textual notation
thruput UNSIGNED スループット (バイト/秒)
フィルター文法:
numbers:
変数:
上の表 c_を頭につければクライアント側 s_を付ければサーバー側
b_は両方とも。
e_はどちらか。
デフォルトは何もついていない。
anything from the above table with a prefix of either 'c_' meaning
the one for the Client or 's_' meaning the value for the Server. If
the prefix is omitted, it means "either one" (effectively becoming
"c_VAR OR s_VAR)"). As shorthand for a conjunction instead, you can
use the syntax 'b_' (as in b_mss>100), meaning 'B'oth, (effectively
becoming "c_VAR AND s_VAR)"). For completeness, 'e_' means 'E'ither,
which is the normal default with no prefix.
定数:
文字列: ダブルクォーテーションで囲ったもの何でも
真偽値: TRUE FALSE
数: 符号付き/符号なしの定数
算術演算子:
any of the operators + - * / %
performed on 'numbers'. Normal operator precedence
is maintained (or use parens)
関係演算子
any of < > = != >= <= applied to 'numbers'
論理演算子
AND, OR, NOT applied to the relational operators above
その他
優先度がわからなければ括弧を使う。
とにかく括弧を使っておけば私よりかっこいいはず! :-)
you'll probably need to put the '-fexpr' expression in single quotes
matched connection numbers are saved in file PF for later processing
with '-oPF' (for graphing, for example). This is helpful, because
all the work is done in one pass of the file, so if you graph while
using a filter, you'll get ALL graphs, not just the ones you want.
Just filter on a first pass, then use the "-oPF" flag with graphing
on the second pass
most common synonyms for NOT, AND, and OR also work (!,&&,||,-a,-o)
(for those of us with very poor memories
例
tcptrace '-fsegs>10' file
tcptrace '-fc_segs>10 OR s_segs>20 ' file
tcptrace '-f c_segs+10 > s_segs ' file
tcptrace -f'thruput>10000 and segs > 100' file
tcptrace '-fb_segs>10' file
http://ken-etsu-tech.blogspot.com/2007/05/centos-5xen.html
http://blog.gcd.org/archives/cat_50026699.html
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
-> # xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &
http://zumomo.org/blog/linux/lolipop_log_dl.html
に感謝しつつ、wget+Perl に移植。
動作確認:Vine Linux 4.1
起動用シェルスクリプトでも書いてcrontabに入れとくと幸せになれそう。
#!/usr/bin/perl
# Usage:perl $0 [1..7]
#------------------------------------------------
# Setting
#------------------------------------------------
### lolipop User information
# plan
# sub-domain=0,mydomain=1
$DOMAIN_PLAN="1";
# sub-domain
$ACCOUNT="domain";
$DOMAIN_ID="500";#フォームのソースを見て、自分のサブドメインに対するIDを確認のこと。
# mydomain
$DOMAIN_NAME_2="more-pc";
$DOMAIN_NAME_3="net";
# lolipop log-in password
$PASSWD="xxxxxx";
# server name (ex.sv501)
$SERVER_NAME="sv501";
# domain want to download
@DOMAINS=("www.more-pc.net", "more-pc.net");
# save directory
$LOG_DIR="/home/user/lolipop/";
### log server
$ADMIN_SERVER="https://user.lolipop.jp";
$LOG_SERVER="http://logs5.lolipop.jp";
# debug mode (default=0,debug=1)
$DEBUG="0";
$TMP_PREFIX="/tmp/lolipo.$$";
$COOKIE_FILE="$TMP_PREFIX.cookie.txt";
#------------------------------------------------
# end of setting
#------------------------------------------------
if ($DEBUG ne 0 ) {
$WGET_OPTION=" -v";
}
# day
$D=$ARGV[0];
if ( $#ARGV eq -1 ) {
$D="1";
}
$DAY=`date --date="${D} days ago" +"%y/%m/%d"`;
chomp $DAY;
$DAY_FILE=`date --date="${D} days ago" +"%Y%m%d"`;
chomp $DAY_FILE;
### main
# 1) login form
$cmd="wget$WGET_OPTION -O $TMP_PREFIX.1.html --no-check-certificate --keep-session-cookies --save-cookies=\"${COOKIE_FILE}\" \"${ADMIN_SERVER}/\"";
if ( $DEBUG eq 1 ) {
print "------ 1) login form --------------------------------\n";
print "$cmd\n";
}
system($cmd);
# 2) login
$cmd="wget$WGET_OPTION -O $TMP_PREFIX.2.html --no-check-certificate --load-cookies=\"${COOKIE_FILE}\" --keep-session-cookies --save-cookies=\"${COOKIE_FILE}\" --referer=\"${ADMIN_SERVER}\/?\" --post-data=\'domain_plan=${DOMAIN_PLAN}&account=${ACCOUNT}&domain_id=${DOMAIN_ID}&domain_name_2=${DOMAIN_NAME_2}&domain_name_3=${DOMAIN_NAME_3}&passwd=${PASSWD}\' \"${ADMIN_SERVER}/?mode=login&exec=1\"";
if ( $DEBUG eq 1 ) {
print "------ 2) login -------------------------------------\n";
print "$cmd\n";
}
system($cmd);
# 3) access log form
$cmd="wget$WGET_OPTION -O $TMP_PREFIX.3.html --no-check-certificate --load-cookies=\"${COOKIE_FILE}\" --keep-session-cookies --save-cookies=\"${COOKIE_FILE}\" \"${ADMIN_SERVER}/?mode=aclog\"";
if ( $DEBUG eq 1 ) {
print "------ 3) access log form ---------------------------\n";
print "$cmd\n";
}
system($cmd);
foreach $DOMAIN (@DOMAINS) {
# 4) $DOMAIN form
$cmd="wget$WGET_OPTION -O $TMP_PREFIX.4.$DOMAIN.html --load-cookies=\"${COOKIE_FILE}\" --keep-session-cookies --save-cookies=\"${COOKIE_FILE}\" --referer=\"${ADMIN_SERVER}/?mode_aclog\" --post-data='server_domain=${SERVER_NAME}&select_domain_name=${DOMAIN}' \"${LOG_SERVER}/index.php?login=1\"";
if ( $DEBUG eq 1 ) {
print "------ 4) $DOMAIN form -------------------------------\n";
print "$cmd\n";
}
system($cmd);
# 5) download
$cmd="wget$WGET_OPTION -O ${LOG_DIR}${DOMAIN}\.${DAY_FILE}\.gz --load-cookies=\"${COOKIE_FILE}\" --keep-session-cookies --save-cookies=\"${COOKIE_FILE}\" --referer=\"${LOG_SERVER}\/index.php?login=1\" --post-data=\'sltDate=${DAY}\' \"${LOG_SERVER}\/download.php\"";
if ( $DEBUG eq 1 ) {
print "------ 5) $DOMAIN download ---------------------------\n";
print "$cmd\n";
}
system($cmd);
}
# remove tmp file
if ( $DEBUG eq 0 ) {
$cmd="rm $COOKIE_FILE";
system($cmd);
$cmd="rm $TMP_PREFIX.\*.html";
system($cmd);
}
exit(0);
ツール>アドオンとか開くとアウト。
Ubufoxを削除してみたけれど変わらず。
で、SCIM+Anthyの日本語入力メソッドがOFFなら落ちないようなので、以下で対応。
SCIMを設定>全体設定>全てのアプリケーションで同一入力メソッドを使用のチェックを外す
探した結果、以下で発見。
[システム] - [設定] - [外観の設定] - [カスタマイズ] - [ポインタ]
また、以下のようなライブラリが足りないと言われる。
libX11.so.6
libXtst.so.6
libXext.so.6
libXrender.so.1
libz.so.1
32bitライブラリを導入すればいいらしい。
sudo apt-get install ia32-libs
ちょっとした事情で、LAN 内の IP アドレス 1 個 1 個に ping を打たなきゃならなくなったので、
しょぼいシェルスクリプトを書いてみた。
#!/bin/sh
for i in `seq 1 254`;
do
ping -c 1 -w 1 "192.168.0.$i"
done
sh ping.sh
で、ひたすらpingを打つ。
-w オプションはタイムアウトまでの秒数。システムによっては異なるオプションかも。t とか。
zshならわざわざスクリプトファイルに書かなくても直接実行できるが。
LAN内のマシンで、外部からアクセスできるのは Linux 機の 80 番ポートのみ。
なので、cgi を作って、LAN 内の他のマシンにマジックパケットを送るようにしてみた。
まずは、普通にシェルスクリプトを書く。
wol.sh :
#!/bin/sh
wol 192.168.0.255 00:00:00:00:00:00
これをどこか、Apache から直接アクセスできない場所に置く。
今回は、/var/www/ にした。
次は cgi を書く。
Apache の CGI フォルダに、適当な名前で CGI ファイルを作る。
wol.cgi :
#!/bin/sh
echo Content-type: text/html
echo
echo "<title>sending wol</title>"
echo "<p>"
echo "sending wol to fluorite"
echo "..."
sh /var/www/wol.sh
echo "..."
echo "</p>"
echo "<p>"
echo "done."
echo "</p>"
ブラウザで
http://<Webサーバのアドレス>/cgi-bin/wol.cgi
を叩くだけ。
#セキュリティを気にするならSSH開けたほうがよっぽどマシな気もする。
