「Linux」カテゴリーアーカイブ

Macでディレクトリ配下のファイルの先頭行に一括で文字列を挿入する

あまり利用することもないと思いますが、備忘録として記載します。

作成したファイルの冒頭に特定の文字列を一律で追加したい時は、以下のコマンドを覚えておくと便利です。例えば、開発したソースコードの冒頭に、コピーライトなどのコメントを後から追加することになった場合などに有用です。

$ ls -l -d $(find 対象ディレクトリ名 -type f) | awk '{print $9}' | xargs -Ix sed -i -e '1s/^/挿入したい文字列\'$'\n/' x

以上です。

コピーしておくと便利なコマンド Linux編 sedコマンドによる文字列置換

sedコマンドによる文字列置換は以下のコマンドで実行します。

$ sed s/[置換前の文字列]/[置換後の文字列]/g [ファイル名]

実際に実行してみます。ただし、以下のようにファイルの中身自体を置き換えるわけではありません。

$ echo "Hello World" > test
$ cat test
Hello World
$ sed s/World/Koratta/g test 
Hello Koratta
$ cat test
Hello World

 

コピーしておくと便利なコマンド Linux編 MegaRAID Managerでステータスを確認する

HW障害時にディスクやRaidカードのステータスを確認することありますよね。MegaRAID Managerが入ってる場合に、それらのステータスを一気に確認するコマンドを紹介します。

障害時にかなり利用するので、以下のコマンドをコピーしておくと便利ですよ。

/usr/local/MegaRAID\ Storage\ Manager/StorCLI/storcli64 /c0 show all

以上です。

LinuxでDockerのネットワークサブネットを変更する

LinuxでDockerのネットワークサブネットを変更する方法について紹介します。

  • Dockerのネットワークサブネットを考慮する理由

  • Dockerのネットワークサブネットを変更する方法

Dockerのネットワークサブネットを考慮する理由


dockerサブネットを気にしたことはありますか?
仮想的にアサインされるので外の機器に影響を与えることはないのですが、外のサブネットと重複する場合は少し考慮が必要です。

企業のシステムだと、Proxyサーバーを経由してインターネットへアクセスすることがあります。その時、docker.ioなどインターネットからベースイメージを取得したい場合、dockerでもproxyを指定することになります。しかし、以下のようにdockerサブネットとProxyサーバーのIPアドレスが重複する場合、docker.ioへ到達することができません。ProxyサーバーのIPアドレスを変える訳にもいかないので、dockerのサブネットを変更しなければなりません。

Dockerのネットワークサブネットを変更する方法


ここからDockerのネットワークサブネットを変更する方法について紹介します。と言ってもすぐできます。

以下のコマンドで/lib/systemd/system/docker.serviceを開き、オプション--bip=XXX.XXX.XXX.XXX/XXを追記した後、dockerをリスタートします。

$ vi /lib/systemd/system/docker.service
→「--bip=XXX.XXX.XXX.XXX/XX」を追記
$ systemctl daemon-reload
$ systemctl restart docker

 

以上です!私が実際に仕事で経験した小ネタでした。皆さんもご注意ください。

コピーしておくと便利なコマンド Linux編 curlコマンドでページのステータスだけ取得する

コピーしておくと便利なコマンド第二弾です。curlコマンドでページのステータスだけ取得するコマンドの組み合わせを紹介します。

例えばスタータスに応じて処理を変えるスクリプトを作成する時、ページのステータスだけ取得したいことがよくあります。

また、私はcurlコマンドを問題判別でよく利用するのですが、html全文によってターミナルがかなりスクロールされてしまうのが嫌で、ページのステータスだけ取得したいということがありました。

そんなときは以下のコマンドを実行してください。

$ curl -LI localhost:8080 -w '%{http_code}\n' -s -o /dev/null
200

いつもの長いhtml文でなく、ステータスだけ表示されます。

コピーしておくと、ちょっとしたスクリプトを書く時に便利かなぁと思い紹介しました!

以上です。

コピーしておくと便利なコマンド Linux編 pingに日時をつける

コマンドの組み合わせを一行丸ごとコピーして、いつでも利用できるようにしておくと非常に便利です。そこで、日常で使われそうな便利なコマンドを時折紹介していきたいと思います。今日はその初投稿です。

インフラエンジニアはメンテナンスやテスト中よくpingを使って疎通確認をすることが多々あります。そして、何秒間通信が途絶えたかなど後から確認することがありますが、素のpingコマンドだけでは以下のように何時に通信が途絶えたかわかりません。

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.045 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.084 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.072 ms

そこで紹介するのが以下のコマンドの組み合わせです。これはpingに日付をつけることができます。メンテナンスやテストの後に時間を報告することがよくありますので、念のためこのコマンドで実行しておくと、後から見返せるのでとても便利です。

$ ping localhost | xargs -I_ date +'%c _'
木  5/28 01:01:25 2020 PING localhost (127.0.0.1): 56 data bytes
木  5/28 01:01:25 2020 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.034 ms
木  5/28 01:01:26 2020 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.102 ms
木  5/28 01:01:27 2020 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.083 ms
木  5/28 01:01:28 2020 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.072 ms
木  5/28 01:01:29 2020 64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.086 ms

以上です!皆さんも是非使ってみてください!