平时用电脑或者服务器跑程序,时间一长容易忘记哪些任务执行过、有没有出错。这时候有个自动记日志的脚本就特别实用。比如你每天定时备份文件,但不知道某次有没有成功,翻记录又麻烦。一个简单的日志脚本就能帮你自动记录时间、操作结果,省心又高效。
为什么需要日志脚本
试想一下,你在后台跑了个下载脚本,半夜断电重启后,根本不知道它跑到哪了。如果有日志,打开一看“2025-04-05 03:21:12 - 下载完成”,心里立马有数。日志不只是给程序员用的,普通用户也能靠它理清操作轨迹。
用Shell写个基础日志脚本
Linux或macOS用户可以直接用Shell写。下面这个小脚本会在执行时记录时间和状态:
#!/bin/bash
LOGFILE="/home/user/operation.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始执行备份任务" >> $LOGFILE
# 模拟一个操作
cp -r /source/folder /backup/ 2>&1
if [ $? -eq 0 ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S') - 备份成功" >> $LOGFILE
else
echo "$(date '+%Y-%m-%d %H:%M:%S') - 备份失败" >> $LOGFILE
fi
把这个保存为 backup_with_log.sh,加上权限 chmod +x backup_with_log.sh,以后每次运行都会在日志文件里留下痕迹。
Windows下用批处理也能记日志
不用非得装复杂工具。比如你每天要复制一些工作文件,可以用批处理加时间戳:
@echo off
set LOGFILE=C:\logs\daily_job.log
echo %date% %time% - 开始同步文件 >> %LOGFILE%
xcopy D:\work\* E:\backup\ /D /Y
if %errorlevel% == 0 (
echo %date% %time% - 同步成功 >> %LOGFILE%
) else (
echo %date% %time% - 同步失败 >> %LOGFILE%
)
第一次运行前记得手动创建 C:\logs\ 文件夹。之后双击就能跑,出问题直接看日志。
Python脚本让日志更智能
如果你熟悉Python,可以用内置的 logging 模块,功能更强。比如:
import logging
import os
# 配置日志格式和文件
logging.basicConfig(
filename='app.log',
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logging.info("程序启动")
try:
with open('data.txt', 'r') as f:
content = f.read()
logging.info("文件读取成功")
except Exception as e:
logging.error(f"读取失败: {e}")
这段代码会生成 app.log,自动区分信息和错误,时间也精确到毫秒,适合长期运行的小工具。
日志文件别忘了定期清理
日志记多了也会占空间。可以在脚本末尾加一句控制大小,比如Shell中:
# 保留最近100行
tail -100 $LOGFILE > $LOGFILE.tmp && mv $LOGFILE.tmp $LOGFILE
或者用Python判断文件体积,超过10MB就归档。这样既留了记录,又不会塞满硬盘。