LoginSignup
1
0

More than 5 years have passed since last update.

自分の端末宛にpingを送って応答の有無をCSVに記録する

Last updated at Posted at 2018-05-05

つらみ

毎日、勤務先の滞在時刻を記録して、毎月、指定のエクセルのフォーマットで提出する必要がある。手で入力するのがつらい。

だらず

自分のサーバから自分が使用しているパソコンとスマートフォンに定期的に 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

つづく。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0