シェル
小ネタです。 「いらすとや」さんのトランプ画像を使わせていただこうとしたら、1枚ずつ保存しなければならないようで心が折れそうになったため一括でダウンロードできるシェルスクリプトを組みました。……組んだのですが、URLのハッシュ値の法則性を解析する…
一言で言えばGulpのようなタスクランナーっぽいことをmacOS上でやりたかったのです。 「Gulp入れればいいじゃん」という話もありますが、今回はファイルが更新されたら特定のコマンドを実行したいだけだったので、わざわざNode.jsの環境を整えてJavaScriptを…
小ネタが続いてますが、今回も小ネタですw Webサイトの改ざん検知を手軽にパパッと行いたい場合、単純にcurlなどで取得したファイルをdiffで比較するだけでも実現できます。 というわけで以下がコード。ここでは最終的にSlackに通知しています。 #!/bin/bas…
Bashで特定のファイルを順番に処理したい場合、配列をforでぐるぐる回してやるのがお手軽です。ここでは配列listで定義した3つのファイルを順番に指定ディレクトリへコピーしています。 #!/bin/bash # 対象のファイル一覧 list=( /tmp/foo.txt /tmp/bar.txt …
Bashでlsなどコマンドの実行結果を順番に処理したい場合は以下のようにforでぐるぐる回してやるだけです。 #!/bin/bash for file in `ls /tmp/*.json`; do echo "copy ${file} to /home/foo" cp $file /home/foo done ここでは「/tmp」ディレクトリ配下にあ…
日次バッチなどを作っていると、例えばバックアップファイルは最新30件だけ保存し、それ以上古いファイルは削除したいといった気持ちになりますよね。そんな時に利用するのが次のワンライナー。 $ cd backup/ $ rm -f `ls -t . | tail -n+31` これだと30日前…
小ネタです。 シェルスクリプトを書いている際にwgetで正常にファイルをダウンロードできた場合のみ処理を継続したい場合には次のようなコードを書きます。 #!/bin/bash wget 'https://example.com/foo.zip' if [ $? -ne 0 ]; then echo "[ERROR] 正常にダウ…
何らかのAPIを延々と自然な形で叩き続けたいときがありますよね。え?ないw? ← JMeterのようなテスト用のフレームワークを使っても良いのですがそこまでするのは準備が面倒だし、ApacheBenchのようにDDoS…もとい負荷テストをするわけでもないといった場合…