プロジェクト

全般

プロフィール

Linux操作便利集

プロセス操作

ポート番号を使用しているプロセスを調べたい

  • TCPの80ポートを使っているプロセスを調べる
    $ lsof -i tcp:80

ssh接続が切れてもプロセスの実行を継続したい

ssh接続等でコンソールを開き、実行終了までに時間のかかるコマンドをバックグラウンドで実行した場合、コンソールが切断されるとコマンドによって実行中のプロセスにシグナルが飛んでプロセスが終了させられます。
解決方法の1つとして、nohupからコマンドをバックグラウンド実行すると、コンソールが切断されてもプロセスは実行を継続します。

単独のコマンドをnohupで実行する例

~$ nohup cp -pr /data1/xyz /data2 &

連続するコマンドをnohupで実行する例

~$ nohup sh -c "date; cp -pr /data1/xyz /data2; date" &
  • nonhupは、引数のコマンドをSIGHUPで中断しないように実行するので、複数コマンドを実行したい場合は、上述のように サブシェルで実行するか、シェルスクリプトに記載してシェルスクリプトを実行するかの方法があります。

ファイル操作

ファイルの文字コードを変換したい

~$ iconv -f eucjp -t utf8 oldies.txt
  • -f : fromの略でファイルの文字コード
  • -t : toの略で変換後の文字コード
  • 結果は標準出力に吐かれます

Base64エンコーディングされたテキストをデコードしたい

~$ perl -MMIME::Base64 -ne 'print decode_base64($_)' < from.file > to.file

ダミーファイルを作成

dd

ddコマンドで、/dev/zero を入力ファイルとし、ダミーファイルを出力ファイルとし、ブロックサイズとブロック数の組み合わせでファイルのサイズを指定します。

$ dd if=/dev/zero of=dummy.file bs=1M count=128

ファイルのサイズが大きいと、時間がかかります。

fallocate

大きなファイルサイズでも一瞬で作成できます。

$ fallocate -l 32G dummy.file

決まった時間に操作

指定日時にコマンドを実行

  • 2015年3月30日午前3時にマシンを特権で再起動する
    ~$ sudo at 03:00 03/30/15
    at> shutdown -r now
    at> <EOT>                     <--- Ctrl + d を入力
    job 10 at 2015-03-30 03:00
    ~$
    
  • atコマンドのJOBキューを確認する
    ~$ sudo atq
      :
    10       2015-03-30 03:00 a root
    ~$
    


約1ヶ月前に更新