あまり利用することもないと思いますが、備忘録として記載します。
作成したファイルの冒頭に特定の文字列を一律で追加したい時は、以下のコマンドを覚えておくと便利です。例えば、開発したソースコードの冒頭に、コピーライトなどのコメントを後から追加することになった場合などに有用です。
$ ls -l -d $(find 対象ディレクトリ名 -type f) | awk '{print $9}' | xargs -Ix sed -i -e '1s/^/挿入したい文字列\'$'\n/' x
以上です。
あまり利用することもないと思いますが、備忘録として記載します。
作成したファイルの冒頭に特定の文字列を一律で追加したい時は、以下のコマンドを覚えておくと便利です。例えば、開発したソースコードの冒頭に、コピーライトなどのコメントを後から追加することになった場合などに有用です。
$ ls -l -d $(find 対象ディレクトリ名 -type f) | awk '{print $9}' | xargs -Ix sed -i -e '1s/^/挿入したい文字列\'$'\n/' x
以上です。
sedコマンドによる文字列置換は以下のコマンドで実行します。
$ sed s/[置換前の文字列]/[置換後の文字列]/g [ファイル名]
実際に実行してみます。ただし、以下のようにファイルの中身自体を置き換えるわけではありません。
$ echo "Hello World" > test $ cat test Hello World $ sed s/World/Koratta/g test Hello Koratta $ cat test Hello World
HW障害時にディスクやRaidカードのステータスを確認することありますよね。MegaRAID Managerが入ってる場合に、それらのステータスを一気に確認するコマンドを紹介します。
障害時にかなり利用するので、以下のコマンドをコピーしておくと便利ですよ。
/usr/local/MegaRAID\ Storage\ Manager/StorCLI/storcli64 /c0 show all
以上です。
LinuxでDockerのネットワークサブネットを変更する方法について紹介します。
Dockerのネットワークサブネットを考慮する理由
Dockerのネットワークサブネットを変更する方法
dockerサブネットを気にしたことはありますか?
仮想的にアサインされるので外の機器に影響を与えることはないのですが、外のサブネットと重複する場合は少し考慮が必要です。
企業のシステムだと、Proxyサーバーを経由してインターネットへアクセスすることがあります。その時、docker.ioなどインターネットからベースイメージを取得したい場合、dockerでもproxyを指定することになります。しかし、以下のようにdockerサブネットとProxyサーバーのIPアドレスが重複する場合、docker.ioへ到達することができません。ProxyサーバーのIPアドレスを変える訳にもいかないので、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
以上です!私が実際に仕事で経験した小ネタでした。皆さんもご注意ください。
コピーしておくと便利なコマンド第二弾です。curlコマンドでページのステータスだけ取得するコマンドの組み合わせを紹介します。
例えばスタータスに応じて処理を変えるスクリプトを作成する時、ページのステータスだけ取得したいことがよくあります。
また、私はcurlコマンドを問題判別でよく利用するのですが、html全文によってターミナルがかなりスクロールされてしまうのが嫌で、ページのステータスだけ取得したいということがありました。
そんなときは以下のコマンドを実行してください。
$ curl -LI localhost:8080 -w '%{http_code}\n' -s -o /dev/null 200
いつもの長いhtml文でなく、ステータスだけ表示されます。
コピーしておくと、ちょっとしたスクリプトを書く時に便利かなぁと思い紹介しました!
以上です。
コマンドの組み合わせを一行丸ごとコピーして、いつでも利用できるようにしておくと非常に便利です。そこで、日常で使われそうな便利なコマンドを時折紹介していきたいと思います。今日はその初投稿です。
インフラエンジニアはメンテナンスやテスト中よく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
以上です!皆さんも是非使ってみてください!