shell

ncでディレクトリを転送する

scpでは暗号化なしでもCPUがボトルネックになってしまうため、tarとnc(netcat)を組み合わせてディレクトリを高速に転送する。※ncは転送の途中でコネクションが閉じられてもエラーを返さないので注意 # 転送先 nc -l -p PORT | tar xf -# 転送元 tar cfO - DI…

sshのWarning: Permanently added ...を表示させない方法

SSHでホスト鍵が変わっていても無視する方法 - atsumu-t2の日記を使っていると、シェルスクリプトから複数回sshを実行するとき、毎回Warningが表示されて出力が読みにくくなる。それを防ぐ方法。 ssh host "echo hoge" 2> >(grep -v '^Warning: Permanently …

SSHでホスト鍵が変わっていても無視する方法

StrictHostKeyChecking noを指定すると、新しいホストに初めてつないだとき、known_hostsに自動登録されるようになる。(デフォルト値はask)これだけだと、known_hostsにすでに登録されているホストの鍵が変わったとき(OSが再インストールされたとか)、再接…

capistranoで繋がらないホストを無視する方法

capistranoで、下のように:on_error => :continueを指定すれば、繋がらないホストがあっても無視してくれる。 namespace :test do desc 'uptime' task :uptime, :roles => [:test_roles], :on_error => :continue do run "uptime" end end

コマンドの出力結果を一時的なファイルのように扱う

()を使えばいいらしい。 $ echo <(echo hoge) /dev/fd/63 $ cat <(echo hoge) hoge 無駄にパイプ代わりに使ってみる。 $ cp <(seq 1 30) >(grep 0) 10 20 30 プロセス置換って言うらしい。

直前のコマンドが失敗したらナンテコッタイを表示

直前のコマンドが成功したらオワタ、失敗したらナンテコッタイを表示する。 バックスラッシュの代わりに円記号が表示される環境なら、全角文字を使う。 # .bashrc function ps_ex_st { if [ $? -eq 0 ]; then echo "\\(^o^)/" else echo "/(^o^)\\" fi } PS1…

bash_completionで補完時に~が展開されるのを防ぐ

/etc/bash_completionの_expand関数が~の展開を担当してるので、bash_completion読み込み後にこの関数を上書きすればいい。 # .bashrc if [ -f /etc/bash_completion ]; then . /etc/bash_completion _expand() { : } fi 参考: http://okap-plog.blogspot.co…