2 定时存档备份
不管服务器管理的再严格,总是会不可避免的放进来一些熊孩子,这个时候回档就显得很重要了,接下来我将教你如何用crontab与shell脚本实现服务器每8小时自动备份存档
新建一个pzserver_backup.sh文件(本地建或者是直接在Winscp远程搞都行)
文件内输入以下指令
cp -af /home/pzserver/Zomboid/Saves/Multiplayer/pzserver/ /home/pzserver/Zomboid/Saves/save_backups/$(date -d "today" +"%Y%m%d_%H%M%S")/
# 此行含义: 将/home/pzserver/Zomboid/Saves/Multiplayer/pzserver/复制到/home/pzserver/Zomboid/Saves/save_backups/目录下, 并以当前日期命名文件夹的名称
# 之后请在crontab上设置定期执行指令
# 本来还有个定时清理时间过长备份的想法的,因为笔者最近时间太紧迫,暂时没写完,晚些时候发上来
将这个文件用WinSCP放到/home/pzserver目录下,设置组和拥有者给pzserver

(说个题外话:如果你的服务器无法启动,通常是管理者给服务器上传了什么东西,却没有正确设置权限导致的!解决方法和这里的一样,别忘了点“循环设定组、拥有者和权限”,没点的话只有文件夹本身被设置过,但是里面的文件还是没动过的! )

说回刚刚的内容,最后一步是给予脚本执行权限,在远程终端输入:
chmod +x pzserver_backup.sh
然后再次打开crontab(crontab -e)
输入:
0 */8 * * * /home/pzserver/pzserver_backup.sh > /dev/null 2>&1
#这行的意思是每8小时执行一次备份脚本
就是这样,:wq保存crontab文件后,它就会在每天的8点、16点、0点自动执行一次备份
备份存档文件可以在/home/pzserver/Zomboid/Saves/save_backups/下找到
需要用的时候,先./pzserver stop关闭服务器,然后把/home/pzserver/Zomboid/Saves/Multiplayer/下的pzserver文件夹删除
找到需要回档的对应备份,文件夹改成pzserver后,将整个文件夹复制到/home/pzserver/Zomboid/Saves/Multiplayer/下即可。
之后启动服务器,存档应该会恢复成几天前的存档