sed/awkで指定された範囲の行を削除(除外)して出力する
sedやawkで、指定された範囲の行を除外(というか、削除)したいということがあったので、その備忘。 以下のように記述して実行してやることで、対象となる範囲の行を除外して出力できる。 sed '/start/,/end/d' PATH awk '/start/,/end/{next}{print}' PATH [root@BS-PUB-CENT7-01 ~]# cat test.txt 111...
View Articleawkでスペース区切りの各ブロックごとに対して指定したキーワードがある場合は除外する
スペース区切りのブロックに対して、特定のキーワードを持つブロックを除外して出力する、ということをやりたいというツイートを見かけて、将来的に自分にも必要になる時が来るかもしれないので備忘として残しておくことにした。とりあえず、ここに記述したようにawkを使えばいけるようだ。 sed '1d;$d' test.txt | awk -vRS= -vORS='\n\n' '!/XXX/'...
View ArticleApache GuacamoleでAD認証(LDAP連携)の設定を行う
sshやRDP、VNCの踏み台サーバとして利用できるApache Guacamoleでは、LDAP連携を行うことで、Active Directoryユーザでのログインが行える。...
View Articleコンソール上で『-~』で始まるファイルを扱う
行儀が悪いというか、あまり作ることはないと思うのだが、コンソール上で『-~』で始まるファイルを扱う場合。こういったファイルの場合、ただ単にシングルクォーテーション・ダブルクォーテーションで括ってやっても駄目だったりする。 こういったファイルをコンソール上で扱う場合、大体のコマンドでは以下のように二重ハイフンを付与することで対応できる。 コマンド -- ファイルPATH...
View Articlesshコマンドで接続、操作した際のログをTeratermのログみたいにターミナルログをタイムスタンプ付きで記録する
ちょっと前にも書いたが、scriptコマンドとawkを組み合わせることで、ターミナルログをタイムスタンプ付きで記録することができる。 script -fq >(awk '{print strftime("%F %T ") $0}{fflush() }'>> PATH) [root@BS-PUB-CENT7-02 ~]# cat session.log 2017-02-02...
View Articlecdで複数個上のディレクトリに移動する
Twitterでそんなのを見かけたので、そういやどうやんのかなと思ってちょっと調べてみた。 そもそも、cdで複数個上の階層のディレクトリに移動する場合、以下のように指定する。 cd ../../ # 2個上の階層 cd ../../../ # 3個上の階層 ただ、こんなのいちいち書いてられないので、もうちょっと分かりやすく書けないものか。...
View Articlesed/awkで最終行からn行にだけ処理を行わせる
sedでは、1行目からn行目までの範囲に対して処理をするように指定できるのだが、最終行からn行に対してのみ置換などの処理を行わせたい場合、普通には指定ができない。 たとえば、以下のようにしてすることで頭の4行のみを対象とする事はできるのだが、後ろの4行を対象に処理をさせることはできない。 sed '1,4s/^/#/g' test # 先頭4行のみを対象とする。これは動く sed...
View Articlesedやawkで置換前の値を元に計算した値で置換を行う
sedやawkで、置換前の値を元に、計算した値で置換を行いたいというのがあったので、備忘で残しておく。 例えば、以下のようなファイルに対し、数字を3足した内容を出力させたいとする。 [root@BS-PUB-CENT7-01 ~]# cat test.txt test 1 test 2 test 3 test 4 test 5 test 6 test 7 test 8 test 9 test 10...
View Articlevimで権限のないファイルをそのまま保存させる
仕事などで、各サーバに入っているvimでの操作を行うことが多いのだが、疲れてくるとうっかりroot権限が必要になるファイルを一般ユーザで開いてしまい、そのまま保存させることができずに再度rootで開き直して再編集する、といったことをよくやってしまう。...
View Articlepgrep・pkillを用いて親プロセスから再帰的にプロセスを強制的にkillする
ちょっとした作業で、親プロセスIDを指定して子プロセスを再帰的にkillしたいということがあったので、その備忘。...
View Articlelsshを使って鍵に応じてアクセス可能なサーバを切り替えさせる簡易的なsshの踏み台を構築する
この間、lsshというsshのラッパーコマンドをGolangで書いてみたのだが、なんか他に使い道ないかなと考えてみた。...
View Articleethtoolコマンドを使って物理配線時に特定のインターフェイスのLEDを点灯させて識別する
LANケーブルの物理配線時に、物理nicとeth0とかens18とかが、どれがどれに紐付いているのかわからない事が多い。 で、もし載ってるOSがLinuxであれば、以下のようにethtoolコマンドを実行することで対象のNICのLEDを点灯させることができるので、どれがどれに紐付いてるのか識別が可能だ。 ethtool -p DEVICE(eth0など)...
View Articleシェル芸で、文章から特定の文字列が縦読みで存在するかどうかgrepする
ふと、文章の中に縦読みで特定の文字列が仕込まれていないかどうか、シェル芸で確認できないかなと思ったのでやってみた。 至極当たり前の話として、grepは行に対して処理を行うので、縦書きのものには利用できない。で、じゃあどうすればいいのか。縦書きに対して処理できないなら、横書きに変換してしまえばいい。...
View Articleシェル芸で、文章から縦読みではなく斜め読みをgrepする
ちょっと前に、シェル芸で文章から縦読みをgrepするということをやってたので、今回は斜め読みをしてみる。 基本は縦読みと対して変わらず、その応用になる。以下、実行した際のコマンド。 seq $(awk '{n=length($0);if(m<n) m=n}END{print m}' file.path)|xargs -I@ awk '{s=@-1;a=a...
View ArticleCentOS 7でrsyslogのログをMariaDBに出力させる
個人的には、ログはテキストファイルの方が色々と都合が良い(後からの統計取得だったり検知・加工してエラー確認とかシェル芸でできるので)のだが、諸々の事情(セキュリティ的な色々だったり、コマンド操作があまりできない人でも使える状態にしたいなど)によって、テキストファイルでの出力や保管、閲覧が都合が悪い事がある。で、rsyslogではログをDBに出力可能なので、今回は、OSにはCentOS...
View Articlepythonでバージョン番号の比較を行う
ちょっとしたスクリプトをPythonで作成しようとしてて、バージョン番号の比較をさせる必要があったので備忘として残しておく。 Pythonでバージョン番号の比較を行う場合は、以下の2つの方法があるようだ。 1.『distutils.version』を用いる...
View Articlesshdのmatchでユーザ単位・アドレス単位でchrootをさせるなど、matchに応じて処理方法を変える
chrootをさせるときなど、OpenSSHではアクセスしてきたクライアントに対し、matchに記述した条件に応じてその後の処理を変えることができる。これを利用することで、たとえば特定のネットワークアドレスからのアクセスの場合はchrootを、そうでない場合は普通にsshで接続させるようにするなどの指定が行える。 設定は「/etc/ssh/sshd_config」で、以下のような内容を追記してやる。...
View Articlesambaでファイルへの操作ログを取得する
ふと、sambaで共有しているファイルへの操作ログを記録できないかと調べてみたところ、VFSモジュールを使うことで設定ができるようなのでやってみることにした。追記する設定例配下。...
View Articleauditdでファイルへのアクセスや操作ログを取得する
ふと、CentOSなどでよく使用したり操作したりするファイルを調べたいなぁと思ったのだが、残念ながらそういった情報はデフォルトでは保持しておらず、ログにも記録してくれない。だからといって、inotify-waitなどでログを取るのもちょっとなぁ…と考えていたところ、auditdでファイルやフォルダを指定してやることで、対象のファイルへのアクセスや操作を監査する事ができるようだ。...
View ArticleUbuntuServer 16.04 LTSに悪意のあるトラフィックを検出する『Maltrail』を試してみる
調べ物をしてたところ、悪意のあるトラフィックを検出してアラートを上げる『Maltrail』というツールを見かけたので、Ubuntu Server 16.04で試してみることにした。実運用で使うなら、ミラーリングポートの設定が必要になると思われるが、今回はそのあたりの設定はせず単体でテストをする。...
View Article