nohupでパイプを用いた処理をバックグラウンドジョブとしてキックする
nohupでパイプを用いた処理をキックする場合、普通にやるとうまく認識されず、パイプの最後にあるコマンドだけがバックグラウンドジョブとしてキックされてしまう。 これを全てバックグラウンドジョブとして動作させる場合は、以下のようにnohupで実行してやればいい。 nohup bash -c 'コマンド | コマンド' & [root@BS-PUB-CENT7-01 ~]# nohup bash...
View Articlebashでコマンド実行時に強制的にexit codeが0で終わるようにする
Rundeckで、一部のコマンドが処理自体はちゃんとしててもWarningのためにexit codeを0以外で返していたため、暫定対応で無理やり正常終了になるようにした(あとでちゃんと直しておいた)。 で、一応念のため備忘として残しておくと、以下のようにコマンドを実行させることで、(各パイプラインは別として)1行のコマンドとしては強制的に正常終了で終わる。 コマンド || true...
View Articleターミナル上で3桁ごとの桁区切りをさせて数字を読みやすく表記させる
ターミナル上で集計処理などをしてて、数字の桁数が多いと読めなくなってくる事がある。numfmtコマンドが使えるかと思ったのだが、システムで使用する数字を変換(1024MB→1GBとか)する場合は良いとして、ただの数字の桁区切りはできないようだ。という訳で、他で数字を桁区切りさせる手法について調べてみた。 1.printfで桁区切りをさせる...
View Articlewgetでサイトのリンク切れURLを調査する
諸事情により、Webサイトのリンク切れ調査をする必要が発生し、なんかお手軽にできないかなと調べてみたところwgetで調べることができそうだったので、実際にやってみることにした。 以下のようにオプションを付与することで、リンク切れのページをログにリストアップさせることができるようになる。 wget --spider -o ./wget.log -e robots=off -r -p...
View ArticleWebサイトを巡回してリンク切れを確認するPython製のCLIツール『linkchecker』を使ってみる
リンク切れページの調査について、前回wgetコマンドを使用した方法について記述したが、これだとリンク元のページがどこかがわからないため、あまり扱いやすいとはいえない。で、リンク切れチェック用のツールを探してみたところ、『linkchecker』なるツールが良さそうだったのでこれを使ってみることにした(ただ、最近はあまりアップデートがされていないらしく、作者にも連絡が取れてない状態でどうなるかわからな...
View Articlesedで置換する際に最短一致で指定をする
sedで置換条件に最短一致を指定したい事があったので、備忘で残しておく。 残念ながらsedでは最長一致が基本で、最短一致の指定方法は用意されていない。このため、以下のように「^」と組み合わせて開始文字列を指定して正規表現を記述してやることで、最短一致を指定する。 echo "abc<b>123</b>def<b>456</b>ghi" | sed...
View ArticleGNU sedで文字列の文字間・前後を指定して置換処理をする
sedで遊んでたとき、GNU sedにスペース区切りの文字列の各文字間や、文字列の前後を指定するパターンがあるということを知ったので、備忘で残しておく。 GNU sedでは文字列の各文字列間は「\B」、文字列の前後は「\b」で指定できるので、これを利用すれば良い。 echo abcdefg hijklmn | sed 's/\B/X/g' # 文字列の各文字間 echo abcdefg...
View Articlesedで置換文字列に文字コードを指定して処理をさせる
sedで文字コードを指定して置換処理をさせる場合は、以下のようにサブシェルを使ってechoと組み合わせてやるといい。 ちょっと例としてはどうかと思うけど、UTFの絵文字を使った例が以下。 echo うんこ | sed 's/\B/'$(echo -e "\U1F4A9")'/g' blacknon@BS-PUB-UBUNTU-01:~$ echo うんこ | sed 's/\B/'$(echo -e...
View ArticleawkでOSのコマンドを実行させる
よくawkで処理中にOSのコマンドを実行させる事があるので、備忘で残しておく。 1.ただコマンドを実行させる ただOSのコマンドを実行するだけで良いのであれば、system()を使用すればいい。 awk '{system("OSのコマンド")}' blacknon@BS-PUB-UBUNTU-01:~$ cat test2.txt a01 15652 a02 13411 a03 2597 a04...
View Articleawkのワンライナーでシングルクォーテーションを使いたいときのエスケープ等の回避方法4個
awkをワンライナーで使っていると、処理の中でシングルクォーテーションを使いたいときが多々ある。 ただ、処理をシングルクォーテーションで囲っている場合、うまくエスケープするには工夫が必要だったりでちょっと面倒くさい。ので、エスケープ以外にもうまいことシングルクォーテーションを利用する方法が無いかと思って調べてみた。 1.エスケープする...
View Articlelinkcheckerでログインが必要なページのリンクチェックを行う
前にここで書いたlinkcheckerでログインの必要なページでのリンクチェックが必要になったのだが、どうもCookieを使って接続をしてもうまくログインできなかった。 で、linkcheckerrcにログイン情報を記述して読み込ませることで対応できるようなので、以下備忘で残しておく。 まず、以下のような内容で任意のPATHにlinkcheckerrcファイルを作成する。...
View Articleawkで特定の列を集計して各行のパーセント列を追加して表示する
awkで、特定の列を集計してパーセントを計算した列を追加したいということがあったので、備忘で残しておく。 以下のように、ファイルを2回読み込ませてやり、1回目に集計処理を、2回目に読み込む際にパーセント列の計算をすることで実現できる。 awk 'NR==FNR{a=a+$2;next}{p=$2/a*100;print $0,p"%"}' file file...
View ArticleLinuxでディスクがHDDかSSDか確認する
ふと、Linuxで使用しているディスクがHDDかSSDか知りたいということがあったので、備忘で残しておく。 1.「/sys/block/sdX/queue/rotational」から確認する 「/sys/block/sdX/queue/rotational」を確認することで、対象のデバイスがディスクかどうか→HDDかSSDかを確認する事ができるようだ。...
View Articleファイルや標準入力を指定行数で分割して、ファイルへの出力なしに分割した結果ごとに特定のコマンドを実行させる
ファイルや標準入力を指定行数で分割して、かつそれをそのまま(一時ファイルを作成せずに)次のコマンドに渡したいといったことがある。 例えば、以下のようなファイルがあったとして、5行ごとに合計を集計するといった処理をしたいとする。 blacknon@BS-PUB-DEVELOP:~$ cat test3.list a01 13320 a02 64 a03 29730 a04 28184 a05 8993...
View Articleコンソール上でImageMagickを使って画像ファイルのEXIF情報を取得する
あまり写真とか取らないのだけど、ふとLinuxのコンソール上で画像データのEXIF情報を取得するにはどうすれば良いのかなと思ったので調べてみたところ、ImageMagickを使ってやることで、コンソール上からファイルのEXIF情報を取得・削除といった事が可能なようだ。 ImageMagickは、CentOSならyum、Ubuntuであればaptからインストールができる。 sudo apt...
View Articleコンソール上でリストから選択してsystemdの管理が行える『Chkservice』
調べ物をしていたところ、コンソール上でsystemdの内容をリスト表示し、そこから選択して管理が行えるTUIのツール『Chkservice』なるツールを見かけたので、試しに入れてみることにした。 1.インストール Ubuntuの場合はリポジトリが用意されているようなので、そちらからインストールができる。 ●Ubuntuの場合 sudo add-apt-repository...
View Articlesshとsslを443ポートで同居させる『sslh』を使ってみる
sshというと22番ポートを利用するものだが、環境によっては利用できない事がある。 で、そういった場合だと443番ポート(SSL)を利用する場合が多いのだが、Webサーバなんかの場合だとすでにhttpsで使用している場合が多い。そんなとき、sshとsslを443番ポートで同居させて、それぞれのパケットのときは適切に割り振りをしてくれるリバースプロキシのような動作をしてくれるのが『SSLH』になる。...
View ArticleCentOS7へKeycloakをsystemdで起動、停止できるようにインストールする
だいぶ前に、CentOS 7にKeycloakをインストールして触ってみるということをしていたが、今回はちゃんとsystemdで管理できるようにインストールをしてみる。 基本的なインストール方法は変わらないが、一応事前準備から進めていく。 1.事前準備 前回と変わらず、以下のコマンドを実行して実行ユーザの作成や必要となるパッケージを導入しておく。 useradd keycloak yum...
View Article