每天重复点鼠标?不如让脚本代劳
远程办公最怕什么?不是网络卡,而是每天重复做同样的事:打包日志、同步文件、检查服务器状态、清理缓存……这些操作看似简单,但积少成多,一天浪费半小时都不奇怪。我之前就是这样,每天早上第一件事就是手动 scp 文件、ssh 登录、grep 日志,直到有一天实在受不了了,开始写几个小脚本,结果现在每天省下快一小时。
自动备份工作日志的小脚本
我在本地开发时习惯把日志输出到 ~/logs/ 目录,每次要发给同事都得手动压缩再上传。后来写了个简单的 shell 脚本,一键完成打包和上传到公司内网服务器:
#!/bin/bash
LOG_DIR="$HOME/logs"
BACKUP_DIR="/tmp/backup"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/logs_$DATE.tar.gz $LOG_DIR/*.log
scp $BACKUP_DIR/logs_$DATE.tar.gz user@remote-server:/home/user/backups/
echo "日志已备份并上传"现在每天早上运行一次 ./backup-logs.sh,喝口咖啡的功夫就搞定了。
定时检测远程服务器状态
我们组有台测试机经常因为内存爆掉挂掉,运维又不归我管。干脆写个脚本每十分钟检查一次,发现异常就发通知到钉钉群。
#!/bin/bash
HOST="test-server.example.com"
RESPONSE=$(ping -c 1 $HOST | grep "bytes from")
if [ -z "$RESPONSE" ]; then
curl -X POST https://oapi.dingtalk.com/robot/send?access_token=xxx \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text", "text": {"content": "【警告】测试机 $HOST 无法访问!"}}'
fi把这个脚本丢进 crontab:*/10 * * * * /home/me/check-server.sh,从此再也不用担心服务半夜挂了没人知道。
一键同步代码到远程开发机
我本地写代码,远程跑测试。以前每次改完都要手动 rsync 一堆文件,还老漏传。现在一个脚本全搞定:
#!/bin/bash
LOCAL_DIR="~/projects/myapp"
REMOTE="dev-user@dev-box.internal:~/myapp"
rsync -avz --exclude='node_modules' --exclude='.git' $LOCAL_DIR/ $REMOTE
echo "代码同步完成"起个别名 alias syncapp='./sync-code.sh',改完代码直接敲 syncapp,顺手得很。
清理临时文件也值得写脚本?
信不信,光是删 *.tmp 和 ~$*.docx 这种临时文件,我一个月能多点几百次鼠标。现在每天下班前运行这个脚本:
#!/bin/bash
find ~/Documents -name "*.tmp" -delete
find ~/Downloads -name "~$*.docx" -delete
find /tmp -name "upload_*" -mtime +1 -delete
echo "临时文件已清理"干净利落,还顺便释放了几个G的空间。
这些脚本都不复杂,最长不过二十行,但它们真真实实把我从机械劳动里解放出来了。远程办公拼的不只是网速,更是谁更会“偷懒”。你写的每个小脚本,都是替你在加班的隐形助手。