エックスサーバーではドメイン数が無制限で設定できるので活用しているのですが、管理が大変なので効率化する方法です。
今回は日々のアクセス数がどれくらい来ているのかを確認していきます。
対象としては
- エックスサーバーにSSH接続できる
- bashの知識がある
- crontabを設定できる
方向けの記事になっております。
エックスサーバーでのアクセスログの場所はこちらの記事でも取り上げました
/home/userlog/httpd/<ユーザー名>/<ドメイン名>.access_log
にアクセスログがあるので、記載されている行数を確認してアクセス数を算出していきます。botなども含まれるので詳細なユーザーアクセス数を知りたい場合には別途アナリティクスを確認する必要があります。
前日分のアクセスログを一括で確認して件数を算出するbashスクリプトがこちら
#!/bin/bash
yesterday=`date "+%Y%m%d" -d "-1 day"`
path=/home/userlog/httpd/`whoami`/*.access_log_${yesterday}.gz
for f in $(ls $path); do
echo "`zcat $f | wc -l` $f"
done | sort -n --reverse
実行したらこんな感じ
$ bash bin/access_log_count.sh
123456 /home/userlog/httpd/<ユーザー名>/<ドメイン>.access_log_20230227.gz
12345 /home/userlog/httpd/<ユーザー名>/<ドメイン>.access_log_20230227.gz
これをcrontabに設定すれば日々メールが飛んでくるので確認することができます。
crontabの設定はこんな感じです。
$ crontab -l
MAILTO=<メールアドレス>@gmail.com
42 5 * * * /bin/bash /home/<ユーザー名>/bin/access_log_count.sh
こんな内容のメールが飛んできます
お疲れ様でした。
コメントを残す