我正在尝试编写一个脚本来记录连接状态并作为cron作业运行。如果它获得一个IP,它会将时间记录到文件中。基于条件的bash脚本行替换
#!/bin/bash
ip=$(wget htt://checkip.dyndns.org/ -q -O - |
grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')
echo $ip
if [ -n "$ip" ]
then
echo 'connected:'$(date +"%d-%m-%Y %I:%M") >> /home/saad/offline_check
else
echo 'disconnected:'$(date +"%d-%m-%Y %I:%M") >> /home/saad/offline_check
fi
此脚本将不断追加connected:XXXX
到文件每5分钟。我希望它写入一次&,然后在发生断开连接之前不要进一步记录。当连接恢复时,它应该将当前连接时间写入新行。
这就是我想要的东西:
connected:08-02-2014 08:30 #start, all connected timestamps after initial one ignored
disconnected:09-02-2014 08:35 #disconnection logged
connected:09-02-2014 17:31 #when connection resumes, timestamp logged, all subsequent ignored until disconnect
disconnected:11-02-2014 08:31
我可以在Python做到这一点,但不是在bash。
如果你做了这么多'bash',可以在'python'做到这一点,我看不出有任何理由,你为什么不该无法做到。没有? – devnull
我根本不用bash工作。这个脚本是别人的。我必须学习整个结构。 – koogee