大家!也许你可以帮我解决这个问题:我已经在 Cron 中设置了每天凌晨 4 点运行的每日备用轮换。该脚本并不复杂(见下文),当我自己执行它时,它可以正常工作。但是,当我在 Cron 上安排它时,脚本会运行大约半小时然后停止(没有邮件,没有警告,它只是在某个时候停止复制文件)。
关于为什么会发生这种情况的任何想法?备份文件夹大约 38Gb 大,脚本运行大约需要一个小时。我猜测某种运行时限制,但这只是一个想法。
最后但同样重要的是,这是脚本。它保留一个包含 7 个每日备份的“存档”文件夹:
#!/bin/bash
NEW=`date +%Y%m%d`
NUMBER=7
function erase_old()
{
while (( $# > $NUMBER )); do
rm -rf "$1"
shift
done
}
mkdir /backup/archive/$NEW
cp -vrp /backup/current/* /backup/archive/$NEW
erase_old /backup/archive/*
不知道它为什么会死,但我可以建议你的滚动备份的替代方法吗?
尝试使用今天的日期而不是今天的日期作为文件名。然后你永远不必删除旧的,它们只会被覆盖。(或者您可以删除
<today>
,然后编写新的。)要获得今天的价值,请执行以下操作:
您正在测试
$CANT
未在任何地方设置的变量。我想知道是否
ulimit -t
妨碍了你。可能是权限问题;同一用户下的 crontab 条目是否可以从命令行成功运行脚本?