用脚本让家里的设备自己干活
家里路由器、NAS、树莓派这些设备一直开着,光待机有点浪费。其实它们完全可以帮你自动做点事,比如每天凌晨备份手机照片、定期检查网络速度、自动重启卡顿的设备。实现这些功能,靠的就是脚本语言加定时任务。
常见的脚本语言怎么用
在家庭网络环境里,Linux 系统最常见,像 OpenWRT 路由器、家用服务器基本都支持 shell、Python 这些脚本语言。写个简单的脚本,再让它定时运行,就能实现自动化。
比如你想每天早上 7 点自动 ping 一下百度,看看网络通不通,可以写个 shell 脚本:
#!/bin/bash
date >> /home/pi/network_check.log
ping -c 4 www.baidu.com && echo \"网络正常\" >> /home/pi/network_check.log || echo \"网络异常\" >> /home/pi/network_check.log把这个脚本保存成 check_network.sh,赋予执行权限 chmod +x check_network.sh,接下来就是让它按时跑起来。
cron 是怎么安排时间的
Linux 下最常用的定时工具是 cron。它就像个闹钟,到了指定时间就执行命令。编辑定时任务用 crontab -e 命令,每行代表一个任务,格式是:
# 分 时 日 月 周 命令
0 7 * * * /home/pi/check_network.sh这行的意思就是每天 7:00 执行一次脚本。想每周一凌晨 2 点清理日志,可以写:
0 2 * * 1 find /var/log -name \"*.log\" -mtime +7 -delete如果你更习惯用 Python 写逻辑,比如从路由器抓取流量数据,也可以用 cron 调用 Python 脚本:
30 6 * * * /usr/bin/python3 /home/pi/get_router_data.py树莓派或 NAS 上的实际应用
很多人用树莓派搭家庭服务器,装了 Transmission 下载电影,但种子太多占空间。可以写个 Python 脚本,扫描下载目录,自动删掉超过三天的完成文件:
import os
import time
download_dir = \"/home/pi/Downloads\"
for filename in os.listdir(download_dir):
filepath = os.path.join(download_dir, filename)
if os.path.isfile(filepath):
days_old = (time.time() - os.path.getctime(filepath)) / (24 * 3600)
if days_old > 3:
os.remove(filepath)然后在 crontab 里加一行,每天半夜跑一次:
0 3 * * * /usr/bin/python3 /home/pi/clean_downloads.py这样一来,再也不用手动清理,省心又省空间。
别忘了测试和查日志
刚设好的任务别以为一定能跑。建议先手动执行一遍脚本,确认没报错。还可以在 cron 任务里加上日志输出,方便排查问题:
0 7 * * * /home/pi/check_network.sh >> /home/pi/cron.log 2>&1这样每次运行结果都会记录下来,哪天没看到新日志,就知道出问题了。
家里的网络设备不是只能被动连接 Wi-Fi,让它们学会“自己做事”,生活才会更轻松。从一个小脚本开始,慢慢把重复操作交给机器,才是数码生活的正确打开方式。
","seo_title":"脚本语言定时任务怎么做?家庭自动化实战指南","seo_description":"想知道脚本语言定时任务怎么做?用 shell 和 Python 结合 cron,在路由器、树莓派上实现家庭网络自动化,教你轻松设置每日备份、网络检测等定时任务。","keywords":"脚本语言定时任务怎么做, 家庭网络自动化, cron 定时任务, shell 脚本定时执行, python 定时任务, 树莓派定时脚本"}