つらみ
毎日、勤務先の滞在時刻を記録して、毎月、指定のエクセルのフォーマットで提出する必要がある。手で入力するのがつらい。
だらず
自分のサーバから自分が使用しているパソコンとスマートフォンに定期的に ping
を送って応答の有無を記録する。応答の有無の情報があればその時刻を出勤・退勤時刻を記入する際のヒントに使えて嬉しい。
MACアドレスから ip n
でIPアドレスを引いて ping
して応答が有れば 1
、無ければ 0
を追記する。
以下をサーバのから cron
で1時間毎とかで実行させる。なお、細部は個々の環境に応じて修正が要る。
pings.bash
#!/bin/bash
LOG_FILE="/var/log/pings.log"
function log () {
local mac_address=$1
local tag=$2
local ip_address=`ip neigh show | grep $mac_address | cut -d ' ' -f 1`
local date=`date --iso-8601=seconds`
local record="${date},${mac_address},${ip_address},${tag}"
touch $LOG_FILE
if ! ping -c 1 $ip_address 1> /dev/null; then
echo "${record},0" >> $LOG_FILE
else
echo "${record},1" >> $LOG_FILE
fi
}
log "00:00:5E:00:53:00" "pc"
log "00:00:5E:00:53:01" "mobile"
以下のようなログが出力される。あとはこれを煮たり焼いたりして使う。
/var/log/pings.log
2018-05-05T21:45:37+09:00,00:00:5E:00:53:00,192.0.2.0,pc,1
2018-05-05T21:45:37+09:00,00:00:5E:00:53:01,192.0.2.1,mobile,1
つづく。