可通过操作系统任务计划工具结合PeaZip命令行实现自动压缩备份:Windows用任务计划程序+批处理或PowerShell;Linux/macOS用cron或systemd timer;跨平台可复用PeaZip内置batch脚本。

如果您希望让PeaZip在指定时间自动执行压缩备份任务,而无需手动干预,则需要借助操作系统原生的任务计划功能与PeaZip命令行能力相结合。以下是实现此目标的多种可行路径:
一、Windows平台使用任务计划程序+批处理脚本
该方法利用Windows内置的“任务计划程序”调用自定义批处理文件,从而触发PeaZip命令行执行压缩操作。批处理脚本可封装路径、格式、加密、时间戳等参数,确保每次运行行为一致。
1、新建一个文本文件,扩展名改为.bat,例如backup_job.bat。
2、用记事本打开,输入以下内容(请根据实际路径修改):
set "source=C:\Projects"
set "output=D:\Backups\auto_%date:~0,4%%date:~5,2%%date:~8,2%.7z"
peazip.exe a -t7z "%output%" "%source%\*" -mx=9 -mmt=on -p"your_password" -hp
3、保存文件,并确认peazip.exe所在目录已加入系统PATH环境变量,或在脚本中使用peazip.exe的绝对路径。
4、打开“任务计划程序”,点击“创建基本任务”,按向导设定触发时间(如每天凌晨2点)。
5、在“操作”步骤中选择“启动程序”,浏览并选中刚才创建的backup_job.bat文件。
6、完成设置后,务必勾选“不管用户是否登录都要运行”并启用“不存储密码则无法运行”选项下的“只在本地运行”替代方案,否则加密任务可能因会话限制失败。
二、Linux/macOS平台使用cron+Shell脚本
该方法通过系统级定时服务cron调度Shell脚本,调用PeaZip命令行完成自动化压缩。适用于服务器环境或长期无人值守的桌面系统,支持标准输入读取密码以规避明文风险。
1、创建脚本文件backup.sh,赋予执行权限:
chmod +x backup.sh
2、编辑脚本内容如下:
#!/bin/bash
source_dir="/home/user/documents"
output_file="/backup/auto_$(date +\%Y\%m\%d).zip"
echo "my_secret_pass" | peazip -a -tzip -p -hp "$output_file" "$source_dir"/*
3、运行crontab -e,添加一行定时指令:
0 3 * * * /path/to/backup.sh
4、保存退出,确保执行用户对源目录有读取权限,且对目标路径有写入权限;若使用-hp参数,必须通过管道或重定向方式传入密码,不可硬编码在脚本中。
三、跨平台通用方案:使用PeaZip内置batch工具集
PeaZip官方发布包中包含预置的批量脚本模板,位于res/share/batch/目录下,涵盖增量备份、带时间戳归档、加密压缩等场景,可直接复用或微调后配合系统定时器使用。
1、定位到PeaZip安装目录下的res/share/batch/子目录。
2、复制incremental_backup.bat(Windows)或incremental_backup.sh(Linux/macOS)至工作目录。
3、用文本编辑器打开,修改其中的SOURCE_PATH、DEST_PATH、ARCHIVE_NAME等变量值为实际路径。
4、在Windows中将该bat文件交由任务计划程序调用;在Linux/macOS中将其加入crontab。
5、注意检查脚本中是否启用-mt24h等时间筛选参数,避免重复压缩未变更文件,节省I/O与存储资源。
四、基于PowerShell的高级调度(仅Windows)
PowerShell提供更精细的错误捕获与日志记录能力,适合需要监控执行状态或集成至IT运维流程的场景。它可调用PeaZip命令行,并将输出重定向至日志文件以便审计。
1、新建PowerShell脚本auto_compress.ps1,内容如下:
$source = "C:\Data"
$dest = "D:\Archive"
$stamp = Get-Date -Format "yyyyMMdd_HHmm"
$archive = "$dest\backup_$stamp.7z"
& "C:\Program Files\PeaZip\Res\peazip.exe" a -t7z $archive "$source\*" -mx=9 -mmt=on 2>&1 | Out-File "$dest\log_$stamp.txt"
2、在PowerShell中执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser允许脚本运行。
3、使用任务计划程序新建任务,在“操作”中选择“启动程序”,程序栏填写powershell.exe,参数栏填写:
-ExecutionPolicy Bypass -File "C:\Scripts\auto_compress.ps1"
4、PowerShell脚本默认被系统阻止执行,必须提前配置执行策略,否则任务静默失败且无提示。
五、使用systemd timer(仅Linux systemd系统)
对于采用systemd作为初始化系统的Linux发行版(如Ubuntu 20.04+、Debian 10+、Fedora等),可通过systemd timer实现更可靠、可依赖的定时机制,支持开机自启、失败重试及依赖管理。
1、创建service文件/etc/systemd/system/peazip-backup.service:
[Unit]
Description=PeaZip Daily Backup
[Service]
Type=oneshot
ExecStart=/usr/bin/peazip -a -t7z /backup/daily_$(date +\%Y\%m\%d).7z /home/user/docs -mx=9 -mmt=on -hp
User=backupuser
Environment=PATH=/usr/local/bin:/usr/bin:/bin
2、创建timer文件/etc/systemd/system/peazip-backup.timer:
[Unit]
Description=Run PeaZip backup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
3、启用并启动timer:
sudo systemctl daemon-reload
sudo systemctl enable peazip-backup.timer
sudo systemctl start peazip-backup.timer
4、systemd service中无法直接展开shell变量如$(date),必须改用bash -c包装命令,否则时间戳将为空或报错。

















