yuu_nkjm blog
2009-12-08(Tue) 編集
[Linux][command][xargs] xargsの便利なオプション
引数を好きなところに入れられる iオプション
--replace[=replace-str], -i[replace-str]
initial arguments の中の replace-str を、標準入力から読んだ名前で置き換える。クォートされていない空白文字を文字列の区切りとみなさない。replace-str が省略された場合は、 "{}" がデフォルトの置換文字となる (`find -exec' と同様)。自動的に -x と -l 1 が同時に指定されたことになる。
例) ls -1|xargs -n 1 -i sed '1s/^/--{}-----\n/' {}
xargsで実行されたコマンドを確認する tオプション
--verbose, -t
実行する前に、コマンドラインを標準エラー出力に表示する。
コマンドラインに与える引数の個数を制御する nオプション
--max-args=max-args, -n max-args
コマンドラインあたり最大 max-args 個の文字列が用いられる。もしサイズが超過した場合には (-s オプションの項を見よ)、 max-args 以下の文字列が用いられることになる。ただしこれは -x オプションが指定されていない場合で、指定されている場合には xargs自身が実行を終了する。
例) ls -1|xargs -n 1 -i sed '1s/^/--{}-----\n/' {}
あ,-Pと一緒に使わなきゃいけないのか….
並列実行の個数を制御する Pオプション
--max-procs=max-procs, -P max-procs
一時に実行するプロセスの最大数を max-procs に設定する。デフォルトは 1。もし max-procs が 0 の場合は、 xargs は可能な限り多くのプロセスを実行しようとする。 -n オプションは -P といっしょに用いるようにすること。さもないと一回の実行しか行われない場合がある。
2011-12-08(Thu) 編集
[ssh][openSUSE] ssh(sshd)のトラブルシューティング
localhostから接続できるか確認する
localhostから繋がるかを確認する.つながらなかったら,ネットワークではなく,sshdの方が原因の可能性が高い.つながったら,ネットワークの方が怪しい.
ネットワークの疎通を確認する
ネットワークに接続出来ているか確認する.ネットワークに接続できない - yuu_nkjm blog(2012-02-03).また,tsharkを使って22番ポートにパケットが到達しているかを調べる.TCP/UDPパケットをtshark(Wireshark)でキャプチャ - yuu_nkjm blog(2008-08-19).
ssh hoge@localhost
ファイヤウォールやパケットフィルタソフト(iptables,suse firewall,fail2banなど)の設定を確認する
こいつらが蹴ってることも多い.
sshdをデバッグモードで起動する
SSHD の詳細なデバッグ情報を表示させる方法 - WebOS Goodiesを参考にした.openSUSEの場合では,yast->/etc/sysconfigエディタ->Network/Remote access/SSHの$SSHD_OPTSに"-d"を与える.より詳細なデバッグログを見れるデバッグモードで起動したい場合は"-d -d"のように重ねる.最大で-dを三つまで並べられる.
デバッグモードで起動するとsshdはforkされない(複数の端末からログインできない)ことに注意する.ログレベルをdebugにするとは違うことに注意する.SSHD (8)
sshdのログレベルを変更するには,sshd_configのLogLevelを変更する.SSHD_CONFIG (5)
#LogLevel INFO デフォルトはINFO LogLevel DEBUG
tail -f /var/log/messages
tailなどを使って,sshdログを監視する.
sshdをIPv4のみで使う
上述の$SSHD_OPTSに"-4"を与える.sshdをv4のみしか扱わないように設定する必要があったことがあったんだけど,なんでだったかな….
鍵でしかログインさせない場合でも,パスワードの設定は必要
Ship of Fools: sshの鍵ファイル認証にてハデにハマる.これか?と思ったけど,関係なかった.結局,ログインしようとしているユーザにpasswordが設定されていないだけだった.
SSH+X11
SSH+X11接続をする場合,X Window Systemが参考になった.
Failed to allocate internet-domain X11 display socket.
というエラーが出た.対策はこちら.X11フォーワディングをしようとしたとき,DISPLAY変数に値が設定されない - yuu_nkjm blog(2011-08-01)
2012-12-08(Sat) 編集
[openSUSE][FTP] openSUSEでFTPを使う
セキュリティホールとなりやすそうだからFTPサーバを動かしたくないんだけど,ローカルのプログラムからFTPを使いたいということがあったのでメモ.
yastで"vsftpd"と"yast2-ftp-server"をインストールする.openSUSE 12.2: 第21章 YaST を利用した FTP サーバの設定
サービスの開始 ( ) 起動時 (W) (x) xinetd 経由 (X) ( ) 手動 (M) 選択されたサービス (x) vsftpd (V) ( ) pure-ftpd (U) ┌匿名ユーザと認証ユーザの許可 │( ) 匿名ユーザのみ (U) │(x) 認証ユーザのみ (H) │( ) 両方とも (B) └────────────── ┌アップロード────────────────── │ [x] アップロードの許可 (E) │ [ ] 匿名ユーザのアップロード許可 (Y) │ [ ] 匿名ユーザにディレクトリ作成を許可 (S) └──────────────────────── パッシブモード [x] パッシブモードを許可する (I) SUSEfirewall 設定 [x] ファイアウオールでポートを開く (F)