все! Может быть, вы можете мне помочь с этим: я настроил ежедневную ротацию резервных копий в Cron, чтобы она запускалась каждый день в 4 часа утра. Скрипт несложный (см. Ниже), и когда я сам его выполняю, он работает без проблем. Однако, когда я планирую его на Cron, скрипт запускается примерно полчаса, а затем останавливается (без почты, без предупреждений, он просто прекращает копирование файлов в какой-то момент).
Есть идеи о том, почему это могло происходить? Папка с резервными копиями имеет размер около 38 ГБ, и запуск сценария занимает почти час. Я предполагаю какое-то ограничение времени выполнения, но это всего лишь идея.
И последнее, но не менее важное: это сценарий. В нем хранится "архивная" папка с 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>
, а затем напишите новый.)
Чтобы получить сегодняшнее значение, сделайте что-нибудь вроде:
$FNAME=`date +%A`
Это может быть проблема с разрешением; запись crontab принадлежит тому же пользователю, который может успешно запустить сценарий из командной строки?
Вы тестируете переменную $CANT
который нигде не установлен.
Интересно, если ulimit -t
встает у вас на пути.