【linux】watchコマンドで少し複雑な処理をする
問題
コマンド1個のwatchは簡単ですが、パイプ | でつないだ処理などの場合はどう書きますか。
$ watch df Every 2.0s: df Fri Mar 2 10:40:31 2018 Filesystem 1K- % /dev/mapper/VolGroup00-LogVol00 197876736 82033424 105629528 44% / /dev/xvda1 101086 21112 74755 23% /boot tmpfs 1624152 0 1624152 0% /dev/shm
答え
ダブルクォーテーションで囲むとよいです。
以下の例は、httpdのプロセスを2秒おきに確認できます。
$ watch "ps aux | grep httpd" Every 2.0s: ps aux | grep httpd Fri Mar 2 10:41:46 2018 root 2222 0.0 0.3 107904 11524 ? Ss Feb09 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 7255 0.0 0.4 112164 14428 ? S Feb25 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 9864 0.0 0.3 110628 12792 ? S Feb25 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 9865 0.0 0.4 112172 14356 ? S Feb25 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 9866 0.0 0.7 122200 24368 ? S Feb25 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 9867 0.0 0.4 112248 14480 ? S Feb25 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 13936 0.0 0.4 112172 14352 ? S Mar01 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 17666 0.0 0.4 110960 13192 ? S Mar01 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 23160 0.0 0.4 111396 13572 ? S 09:19 0:00 /usr/local/apache2/bin/httpd -k start root 27644 0.0 0.0 5088 928 pts/0 S+ 10:41 0:00 watch ps aux | grep httpd root 27660 0.0 0.0 5532 992 pts/0 R+ 10:41 0:00 sh -c ps aux | grep httpd wwwadmin 30509 0.0 0.4 111052 13240 ? S Feb26 0:00 /usr/local/apache2/bin/httpd -k start wwwadmin 30511 0.0 0.4 112192 14444 ? S Feb26 0:00 /usr/local/apache2/bin/httpd -k start
コメント