如何在linux系统上完成定时开机和更新github端口的任务
任务背景
1.即使打开代理,有的时候github去clone比较大的文件时也会出问题。这时需要每小时更新一次github的host端口;
2.马上要放假,想远程登录在学校的台式电脑,但学校内网又不太好穿透。退而求其次,选择定时启动电脑的方式,在每天早上八点半左右启动电脑。
更新github的host端口
在/past/to/路径里新建一个host_update.sh文件,运行以下命令获得访问,运行和修改这个文件路径的权限:
sudo chmod a+rw /past/to/hosts_update.sh
这个sh文件里的内容就是更新host文件的命令:
运行这个命令需要sudo输入密码,可以配置/etc/sudoers这个文件,并添加以下行:
username ALL=(ALL) NOPASSWD: /path/to/hosts_update.sh
这样的话,运行这个文件的时候就不需要密码了,很方便自动设置。
最后,使用linux系统上的cron命令,设置定时任务,每小时更新一次host命令
crontab -e
@hourly /path/to//hosts_update.sh
定时启动电脑
也是使用crontab命令,但需要rtc时钟配合完成定时唤醒任务
(Arch系统)sudo pacman -S util-linux
crontab -e
30 7 * * * sudo rtcwake -m off -t $(date +\%s -d '07:30')
crontab -l
这种方式启动失败的原因
1.虽然一直供电,但主板此时已经断电了/挂起可能就没电了,所以内部程序无法启动;
2.RTC时钟的计时出现了问题。因为我们这里是UTC-8的时间,但是主板的RTC时钟很可能是格林尼治时间,是往前8个小时的。所以设定的时间不对。
解决方式:使用BIOS系统设置主板RTC,自启动电脑
sudo systemctl reboot --firmware-setup #进入bios系统
打开华硕主板BIOS系统,高级选项设置:
我这里面主板的时间就是错的,是没有调整过的UTC时间。如果我修改成UTC-8的北京时间,并启动manjaro系统,系统上的时间就会从北京时间增加八小时。
在网络获取到时间之后,manjaro系统上恢复了正常的北京时间。这个主板的时间就会从UTC-8的北京时间被改回UTC时间。所以这个时间一定要从一开始配置电脑BIOS系统的时候就校正,如果你有这个需求的话。。。。
对于我来说,我直接将错就错用了这个UTC时间,从这里面可以看出我设置的其实是每天8:31自动启动电脑,其中实时钟唤醒日期为0,就代表让他每天被唤醒,这个数字一般不会超过31。
用这种方式,我就解决了台式电脑自启动的问题,在家里也可以远程登陆到学校的这台个人电脑,不需要再使用内网穿透以及物理开机的种种方式,我认为还是很方便的。
今天尝试后发现还需要取消电脑自动挂起,要不然会连接不到设备
熄屏是没关系的
这个可以去电脑电源管理那边设置一下
目前应该没啥问题了