改配置、跑脚本之前先备份一份,是程序员的基本素养。这段 aardio 脚本可以把任意目录下的文件按日期复制到独立备份目录,例如 D:/backup/data_20260905,既保留原始文件,也方便按日期回滚。
实现思路
用 tostring(time(), "%Y%m%d") 生成当天日期串拼出备份目录,fsys.createDir 确保目录存在;fsys.each 遍历源目录文件,逐条 fsys.copy 到备份目录并统计成功数。
完整代码
import console;
import fsys;
import time;
console.open();
var srcDir = "D:/work/data"; // 源目录
var bakRoot = "D:/backup/"; // 备份根目录
main = function() {
var dateStr = tostring(time(), "%Y%m%d");
var bakDir = bakRoot + "data_" + dateStr; // 如 D:/backup/data_20260905
fsys.createDir(bakDir);
var count = 0;
for (i, filename, fullpath in fsys.each(srcDir, , "*.*", "file")) {
var target = fsys.joinpath(bakDir, filename);
if (fsys.copy(fullpath, target)) {
count++;
} else {
console.log("备份失败:" + filename);
}
}
console.log("备份完成:" + count + " 个文件 -> " + bakDir);
};
main();
console.pause(true);运行建议
- 结合 Windows 计划任务每天自动运行一次,就是最简单的每日快照;
- 本脚本默认静默复制,遇到失败可用 fsys.lasterr() 查询错误信息;
- 需要保留多天历史时,可顺手把 7 天前的日期目录 fsys.delete 清理,控制磁盘占用。
小结
日期目录加 copy 是最直观的备份模型,在此基础上加上 fsys.enum 递归遍历就能备份整个目录树,适合站点文件、数据库导出文件等场景。
评论(0)
暂无评论,快来抢沙发吧~