Wake On LAN真是个好东西,让我实现了自动环保更新投资数据。
使用GnuCash做帐的一个重要方面是管理投资,而保存理财产品的每日净值则是让数据分析更准确。自动更新并不难,一个简单的cron任务即可。
10 20 * * 1-5 env `dbus-launch` sh -c 'trap "kill $DBUS_SESSION_BUS_PID" EXIT; gnucash --add-price-quotes /home/liang/ownCloud/Documents/gnucash/2015.gnucash' >/dev/null 2>&1
唯一的小问题是,24×7开机有些费电。我的Lenovo TS-140至强版已经从最初的4GB内存一块1TB硬盘,扩展为24GB内存,两块SSD,和四块3TB西数红盘组成的RAID 5。
幸运的是,TS-140支持Wake On LAN,手机上装了一个程序,输入MAC地址测试一下,好用!
定时唤醒方案我选择在QNAP TS-231+(省电,从不关机)上安装etherwake。首先手工安装Entware,然后SSH到QNAP,安装etherwake。
# opkg update
# opkg install etherwake
然后在系统crontab里添加定时唤醒任务
# grep etherwake /etc/config/crontab
55 19 * * 1-5 /opt/bin/etherwake 11:22:33:AA:BB:CC >/dev/null 2>&1
最后更新crontab并重启cron服务。
# crontab /etc/config/crontab
# /etc/init.d/crond.sh restart
只开机不关机还算不上环保,所以还要在TS-140上配置定时关机任务。
liang@debian:~$ grep shutdown /etc/crontab
23 20 * * 1-5 root /usr/local/bin/shutdown.sh >/dev/null 2>&1
liang@debian:~$ cat /usr/local/bin/shutdown.sh
#!/bin/bash
if [ $(who | wc -l) -eq 0 ]
then
shutdown -h now
fi
关机脚本首先判断是否有人登录,没有才关机。
就这样三步(定时开机,定时获取数据,和定时关机)实现一个自动环保方案。