Archive for the ‘shell’ Category
DB(MySQL)を一発ダンプするバッチファイル&シェルスクリプト
XAMPPで公開環境から開発環境を構築(コピー)するときや、その逆(マイグレーション)をする労力を軽減するために、MySQLのDBをダンプするバッチファイル(DOS)とシェルスクリプトです。
プロンプトでパスワード入力だけ求められます(–password=で指定も可能です)が、実行したタイミングのタイムスタンプ(YYYYMMDDHHIISS形式)をダンプしたファイル名に付与しますので、逐一リネームする手間も不要です。
1~4行目は適宜、環境に合わせた内容に変更してください。
SET TARGET=db_name
SET HOSTNAME=host_name
SET USERNAME=user_name
SET EXT=txt
mysqldump –opt -Q –host=%HOSTNAME% –user=%USERNAME% -p %TARGET% > %TARGET%.%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.%EXT%
#!/bin/sh
TARGET=db_name
HOSTNAME=host_name
USERNAME=user_name
EXT=txt
TODAY=`date +%Y%m%d%H%M%S`
mysqldump –default-character-set=utf8 –opt -Q –host=$HOSTNAME –user=$USERNAME -p $TARGET > $TARGET.$TODAY.$EXT
Apacheのログからアクセス元IPとアクセス数をcsv出力
Apacheのログからアクセス元IPをユニークに抽出するワンライナーシェルの応用で、アクセス数をカンマ区切りcsv出力するシェルです。
uniq_ip_count.sh
#!/bin/sh
ACCESSLOG=[access_log]; IPLIST=`cat access_log_20100105 | awk ‘{print $1}’ | sort | uniq` && for TARGET in $IPLIST; do COUNT=`grep $TARGET access_log_20100105 | wc -l`; echo $TARGET,$COUNT; done;
※すべて半角で入力していますが、WordPressが勝手に全角文字にしてしまう場合がありますので、注意してください。
※[access_log]を該当のアクセスログファイル名に変更してください。
出力といっても、echoするだけなので、
$ ./uniq_up_count.sh > result.csv
のように実行してください。
Apacheのログからアクセス元IPをユニークに抽出するワンライナーシェル
ほとんどWordPressの、しかも自作プラグインNichePatchの記事ばかりですが、未だにアクセスの多いshell系も気まぐれに更新していこうかと思います。
思いつくところでは、Apacheのアクセスログ(フォーマットはデフォルト設定)から、アクセス元IPアドレスをユニークに抽出するワンライナー。
$ cat [access_log] | awk ‘{print $1}’ | sort | uniq
※WordPressが勝手にシングルクォート等を全角に変換してしまうようなので、注意してください。(昔からですね。NichePatchで対応か?う~ん。)
※[access_log]を該当のアクセスログファイル名に変更してください。
こういう場合ってcatが良いのか正直よくわかっていません。(昔あまりよくないように聞いた記憶はありますが・・・)
ファイルのタイムスタンプを取得しリネーム(ローテート)する方法②
ファイル(やディレクトリ)をそのタイムスタンプを拡張子としてリネーム(ローテート)する方法。
かなり古い記事「ファイルのタイムスタンプを取得しリネームする方法」で店ざらしにしていたDOS版と、shell版もそれに合わせて、パラメータ化したものです。
どちらもほぼ同じ挙動です。
