sh

wgetでヘッダだけ取得する

sh

curl -Iみたいのがやりくてちょっとはまった。 $ wget -Sq --spider <url>でできるんだけど、これだとどうやら標準出力じゃなくて標準エラーに出力されるらしい。ので $ wget -Sq --spider <url> | grep "200 OK"とかがうまくいかない。ので標準出力にリダイレクトしな</url></url>…

rsyncでdry-runで確認してから実行する

sh

的なシェルスクリプト #!/bin/sh FROM=/path/to/from/ TO=/path/to/to/ EXCLUDE=/path/to/exclude OPT="-av --delete --exclude-from=$EXCLUDE $FROM $TO" RUN="rsync $OPT" DRY_RUN="rsync --dry-run $OPT" $DRY_RUN echo -n 'deply? [y/n]: ' read YN if […

dateコマンドのフォーマットで%kとか使うとき注意

sh

時間をファイル名につけるようなシェルスクリプト書くときに FILE_NAME=`date +"%Y%m%d-%k%M%S"`.tar.gz とかすると、時間が一桁(1時〜9時)だったとき、%kは空白入りの文字列になるので意図しない動作になることがある。 $ date -d "2011-07-10 01:00:00" …

mongodbのバックアップをとって過去30日間分保存する

バックアップをとる簡単なシェルスクリプトのメモ。mongodbのdatabaseのデータをdumpしてtar.gzにして30日以上前のは消す。 #!/bin/sh DB_NAME=$1 if [ -z $DB_NAME ]; then echo 'require database name' exit fi BACKUP_BASE_DIR=/backup/db BACKUP_DIR=$B…

シェルスクリプトで1から10まで出力

sh

シェルスクリプトはほんとにたまにしか書かないので基本的なことも忘れがち。 for i in {1..10}; do echo $i; done