(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

UNIX-Linux

【Linux】東証が取引日なのか休みだったのかを判定するスクリプト

はじめに その日に東京証券取引所で取引があるのか否かではなく、その日に取引があったのかどうかを15時以降に確認するスクリプトを作成しました。 使用例はピンポイントですが、例えば指定した株の終値を自動収集するスクリプトを動かすか否かの判定などに…

【Linux】10進数のIPアドレスを2進数で表示するスクリプト

はじめに IPアドレスを見てどのサブネットに入っているかを確認したい際によく頭の中で二進数にしていたのですが、簡単そうだったので引数に10進数のIPアドレスを入力すれば2進数にして返すスクリプトを作成しました。 環境情報 GNU bash, バージョン 4.4.12…

【Linux】tarコマンドでtarファイルを展開するも反応がない事象

事象 以下コマンドのようにtarファイルの展開を試みるも $ tar xvf hoge.tar標準出力に何も結果が返ってこずtarファイルも展開されない。 環境情報 Red Hat Enterprise Linux Server 7.5 tar (GNU tar) 1.26 原因 tarファイルが破損している。正常なtarファ…

【Linux】SSHログイン失敗でrootユーザがロックされた際の挙動

はじめに Red Hat Enterprise Linux Serverにてrootユーザのパスワードを連続で間違えたことによるロックが起こりました。 せっかくなのでその際の挙動をメモしておきます。 コマンド実行環境 Red Hat Enterprise Linux Server 7.5 (Maipo) 前提 アカウント…

【Linux】kSarを利用時に文字化けでエラーとなる

事象 性能情報を取得結果であるsarファイルを可視化するツール、kSarにてsarを読み込んだ際に以下のように文字化けでエラーとなる。 unable to parse time 18譎?46蛻?01遘? 環境情報 kSar7 (alpha) RedHatEnterpriseLinux 7.8 Windows 10 (Cygwin) 原因/解決…

【Linux】cutコマンドで2文字以上の区切り文字を使いたい

やりたいこと 文字列の分割に2文字以上の区切り文字を使いたい。 # echo "123<>abc<>def<>456"を123 abc 456で切り出すなど。 環境情報 # cut --version cut (GNU coreutils) 8.26 やり方 awkを用いて実現させます例えば<>が区切り文字であったとすると以下…

【Unicode順】数字英字カタカナひらがな漢字の順にsortする

やりたいこと UNIX環境にて以下のような文字列のファイルを $ cat testmoji.txt Apple りんご イチゴ 15 メロン 葡萄 いちじく BananaUnicode順(数字→英字→片仮名→平仮名→漢字)に並べ替える。 環境情報 $ sort --version sort (GNU coreutils) 8.26 $ echo…

【RHEL/VMware】rootパスワードを忘れた場合の再設定方法

やりたいこと vCenter配下の仮想マシンであるRedHatEnterpriseLinuxServerのrootパスワードを再設定したい。 環境情報 RedHatEnterPriseLinuxServer 7.5 vSphere Web Client バージョン6 やり方 vCenterから仮想マシンの再起動を行い、ブート管理システムで…

【Bash】sudo echoでファイルに書き込むとPermission deniedになる事象

事象 書き込み権限がないディレクトリに対して $ ls -ld /etc/apt/sources.list.d/ drwxr-xr-x 2 root root ... /etc/apt/sources.list.d/以下のようにファイルを追記しようとすると以下のエラーとなる。 $ sudo echo "deb https://apt.kubernetes.io/ kuber…

【Bash】複数行で一塊のデータを一行毎にまとめる

やりたいこと 以下のように3行で一まとまりの繰り返しデータを 3788 GMOクラウド(株) 6720 3665 (株)エニグモ 1027 3769 GMOペイメントゲートウェイ(株) 11450 ...以下のように一行で表示したい。 3788,GMOクラウド(株),6720 3665,(株)エニグモ,10…

【入門】コンテナ環境でnmapコマンドにてポートスキャンを実施する

はじめに 標的ホストに対して開いているポートを探索する手法をポートスキャンと言い、標的のIPアドレスが分かればnmapコマンド等を利用することで実行できます。 ただし、セキュリティの穴を見つけることにもなるので他人の管轄するサーバに同コマンドを押…

【Bash】特定の文字列が含まれているか否かで条件分岐する

やりたいこと Linux機にて変数hogeの文字列に「@」マークが入っていればifの条件分岐に記載されている処理を行いたい。 環境情報 # bash --version GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu) やり方 #!/bin/bash echo $hoge > hoge.txt if…

【Bash】curl: (3) Illegal characters found in URLというエラーの解消法

事象 引数にて渡すURLを利用したcurlコマンドにて以下Error。 curl: (3) Illegal characters found in URL 環境情報 $ bash --version GNU bash, バージョン 4.4.12(3)-release (x86_64-unknown-cygwin) $ curl --version curl 7.55.1 (Windows) libcurl/7.5…

【Bash】文字列内の括弧で挟まれた箇所を削除する

やりたいこと 以下の文字列をbashを利用して ABC(DEF)G(H)以下としたい。 ABCG 環境情報 $ bash --version GNU bash, バージョン 4.4.12(3)-release (x86_64-unknown-cygwin) やり方 Linux系OSにて以下コマンドを実行すれば指定した括弧で囲まれた文字列が省…

【RHEL】RHCSA認定試験の出題範囲とその対応ポイントまとめ

RHCSA 認定試験の一番の勉強法は有償ですが公式に提供されている「Red Hat System Administration I 」と「Red Hat System Administration Ⅱ 」の受講です。本記事はそれを受講した上でポイントを抜粋しました。 網羅性を担保するために2020年度時点で公式ペ…

【Linux】tcpdumpで特定ポートのパケットを取得し解析する流れ

はじめに Linux環境にてNTPデーモンを起動してNTPサーバと通信しているパケットを取得し、Windows環境のWiresharkに読ませる流れとそのパケットの中身について説明します。 環境情報 Debian GNU/Linux 9 Wireshark 3.2.2 事前情報 NTPサーバは「インターネッ…

【Linux】ntp.confの設定変更がntpdに反映されない時の解決策

事象 /etc/ntp.confにて設定を以下のように変更して server ntp.jst.mfeed.ad.jp ntpサービスを再起動しても設定が反映されない。 コマンド実行環境 # cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 原因/解決策 原因 ntpdの起動時に読ま…

【メール】コンテナで立ち上げたSMTPサーバと通信を行う

はじめに オープンソースにてMTA機能を提供するPostfix(ポストフィックス)をコンテナ上で用意し、telnetで通信した結果をログとして残しました。コンテナ実行環境のOSとしてはLinux(Debian)です。 コマンド環境情報 # cat /etc/os-release PRETTY_NAME="…

【Bash】sedで否定[^X]を利用する場合は検索条件で絞る

はじめに sedコマンドでは特定の文字列を含む行に対してのみ置換することができます。 sed '/検索文字列/s/置換前文字列/置換後文字列/g'イマイチ検索文字列のポイントが分かっていなかったのですが「sed」で置換前の部分を変数のようにして扱いたい時に便利…

【Linux/sortコマンド】一列目は降順で二列目は昇順にする

やりたいこと 以下のようなファイルを 3,1,one 4,1,two 5,9,three 2,6,four 5,3,five 5,8,six 9,7,seven 9,3,eight 2,3,nine 8,4,ten以下のように並べ替えたい。 2,6,four 2,3,nine 3,1,one 4,1,two 5,9,three 5,8,six 5,3,five 8,4,ten 9,7,seven 9,3,eight…

【curlコマンド】シングルクォーテーションの中で変数を使う

やりたいこと 以下の記事で利用するcurlコマンドにて "Hello, world"の部分を変数 "$hoge"にしたい。 やり方 全体の囲みがシングルクオーテーションになっているので -d '{"messages":[{"type":"text","text":"$hoge"}]}'ダブルクォーテーションに変更して内…

【Bash】$(val:-word)で変数の中身が空なら特定の文字列を入れる

はじめに シェルスクリプトには引数で指定した内容を$1としたり引数の数を$#で取得したりするようなパラメータが存在しますが、タイトルの通りで以下のように記載すれば変数valの中身が空であればwordという文字列を入れるという動きをします。 $(val:-word)…

【Linux】numutilsでワンライナーを省力化する

Debian GNU/Linux 9にてスクリプトやコマンドを利用して数値演算をすることがありますが、例えば数値列の合計値を算出する場合は以下で可能です。 $ seq 1 5 1 2 3 4 5 $ seq 1 5 | awk '{a+=$1} END{print a;}' 15しかし、数値を合計するという処理に特化し…

【Bash】Linuxで各行に指定の単語がいくつかあるのかをカウント

やりたいこと 以下のようなCSVファイル(abc.csv)がありそれぞれの行の特定文字列(カンマ数)をカウントしたい。 a,b,c d,e f,g,h,i j,k, つまり上の場合は以下のように出力したい。 2 1 3 2 環境情報 $ bash --version GNU bash, version 4.4.12(1)-relea…

【Linux】Cygwinでls -lのファイル名のみを取得する

ワンライナー $ ls -l | grep -v "合計" |awk '{print $NF}' | 環境情報 Cygwin上で利用しました。 $ ls --version ls (GNU coreutils) 8.26 パッケージ作成者: Cygwin (8.26-2) Copyright (C) 2016 Free Software Foundation, Inc. ライセンス GPLv3+: GNU …

【Linux】中身は同じでファイル名のみ異なる連番ファイルを作成する手順

やりたいこと 以下のような3ファイルがあった際に $ tree . ├── abc.txt ├── def.txt └── hij.txt以下のようなファイルを作成したい . ├── abc.txt ├── abc_2.txt ├── def.txt ├── def_2.txt ├── hij.txt └── hij_2.txt やり方 以下のワンライナーで実現可…

【便利コマンド】systemctl list-dependencies

使い方 ユニットの依存関係を表示するコマンドにsystemctl list-dependenciesがあります。 しかも依存関係だけでなく、そのユニットの状態を色で確認することができます。実際にコマンド実行結果は以下です。 緑、灰色、赤色が確認できます。色でstatusが分…

【Linux】CPU負荷率を上げるyesコマンド

やりたいこと CPUの閾値監視メッセージの確認のため、Linux機においてCPU負荷率を明示的に上げたい。 使えるコマンド yesコマンドを用いて $ which yes /usr/bin/yes以下のように/dev/nullに出力する。 $ yes > /dev/null &以下、補足です。 補足 ‘yes’: Pri…

【Linux】半角の英数字以外の文字列のみを表示する

はじめに とあるテキストにて全角文字(日本語)のみを出力したくて利用したワンライナーを紹介します。 半角英数以外を表示するワンライナー $ cat hoge.txt | sed -e "s/[0-9]//g" | sed -s "s/[[:lower:]]//g" | sed -s "s/[[:upper:]]//g" ....以下、補…

【vim】Found a swap file by the name "xx.swp"と出た場合

事象 viにてファイルを編集する際に以下のような警告が表示される。 E325: ATTENTION Found a swap file by the name "x.sh.swp" owned by: root dated: ... file name: ~root/hoge/x.sh modified: YES user name: root host name: instance-1 process ID: 1…