bashの引数

command $1 $2 $3 … のように引数は$nに順に対応していて、実行時に指定された引数の数は$#という変数で表される。

Read more

Rsyncで複数台構成Webサーバーのコンテンツを同期するやつ

cronで数分おきに回せば間に合うゆるふわ要件の場合、これにリトライ機構やロックファイルによる排他制御等を追加しとけば良いと思います。 ionice -c 2 nice -n 19 \ rsync -avz –dele…

Read more

webサーバのエラー検出してmail送信

webサーバが何らかの原因で正常な動作を出来なくなった時、エラーが発生していることをメールでサイトの管理者に知らせるスクリプト #!/bin/bash mailreceiver=”user@example.com” ge…

Read more

シェルスクリプト if[ *** ]

シェルスクリプトをまともに書いたことが無かったので bashのif文 if [“abc”=”abc”];then echo $?; fi のように書くと実行できませんでした。 if [ “abc”=”abc” ];the…

Read more

bashで乱数を得るシェルスクリプト

!/bin/sh for n in {1..50}; do random=$(( $RANDOM % 32 )) echo “$random” done echo 剰余を使って、ランダム整数の範囲を絞る。

Read more

テキストファイルに記載したファイルをコピーする

地味に便利っぽ man rsync . . . –files-from=FILE read list of source-file names from FILE . . . # cat /tmp/kopi_suru_…

Read more

シェルスクリプトでループ処理をスキップする

continueを使うことで処理をスキップして次のループに移行することができる。 for i in `seq 3` do if [ $i = 2 ]; then continue fi echo $i done >…

Read more

爆速で find + grep する (xargs使用)

爆速で (速いとは言ってない) AWS EC2 の m1.large インスタンスでやったら、load average: 54.75, iowait: 99% くらい逝って、 SSHログインすらできなくなったので要注意な…

Read more

ディレクトリ構造を維持したままファイルをバックアップ

下記のように、ディレクトリ構造を維持したままファイルをバックアップする場合、 mkdir /path/to/backup/var/www/html/ cp /var/www/html/wp-config.php /pat…

Read more

macOSでgnu-sed使う

macOSのbash環境は、基本的にsshでリモートにつなぐ以外の用途であまり利用しないが、 たまにテキスト処理を行う場合がある。 しかし、いつもログインしているRHEL系Linux環境とコマンドオプションが違っているこ…

Read more

[bash] ファイルの先頭を飛ばす or 後ろを飛ばす

ファイルの内容などを読み込むときに、ヘッダーのような項目がかいてあるような行はスクリプトで処理する時に邪魔になるので、 tailコマンドで飛ばします。 # 先頭2行を飛ばす(3行目から表示) $ tail -n +3 h…

Read more

【シェルスクリプト】10分単位でログを抽出して何かする

愚直に時間文字列を生成してログファイル全体からgrepして抽出しているので、ログファイルがでかいと死にます 本気でログ解析したければもう少し頭を使うか、他の手段を考えましょう。 例えば、 Amazon Athena とか…

Read more

シェルスクリプトでdigる

NXDOMAIN だろうが、DNSサーバーからなんらかのレスポンスがあった時点で、とりあえず0が返るらしい…. 通信不能系など、明らかなエラー状態の場合のみ、非ゼロ値がリターンコードとして返る # man d…

Read more

ワイルドカードでファイル表示時にファイル名を表示する

cat じゃなくて tail でやればよい。 $ tail -n+1 test* ==> test <== 123 ==> test2 <== test man tail . . . Number…

Read more

引数有無判定のメッセ消し

実行時引数の有無を判定する際、 if [ $1 = “innsuu” ] then ・・・ [実行結果] example.sh: 10 行: [: =: 単項演算子が予期されます 実行はされますが、引数が空っぽのときは上…

Read more