У меня есть консоль PHP script, которая вызывается через cron, которая сама по себе создает tar файл каталога.
При вызове PHP script через cron файл tar создается неправильно. При просмотре файла tar отображается следующая ошибка:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
При вызове PHP script вручную через консоль tar файл создается правильно. Выход журнала cron не показывает ошибок.
Здесь tar-код формирует PHP script.
exec("cd $this->backupTempFolderName/$id; tar -czf ../../$this->backupFolderName/$tarFileName $dbDumpFileName documents");
Доза у кого-нибудь есть идея, почему tar создается правильно при вызове вручную и терпит неудачу при вызове через cron?
Обновление. Ошибка при создании файла tar через cron:
tar: ../../backup/20150819-060003.tar.gz: Wrote only 4096 of 10240 bytes
tar: Error is not recoverable: exiting now
Иногда возникает ошибка:
tar: ../../backup/20150819-054002.tar.gz: Cannot write: Broken pipe
tar: Error is not recoverable: exiting now
Как было сказано ранее, при выполнении через cron tar файл создается, но всегда 50% от правильного размера (при ручном выполнении script):
-rw-r--r-- 1 gtz gtz 1596099468 Aug 19 06:25 20150819-042330.tar.gz <- Manually called skript, working tar
-rw-r--r-- 1 gtz gtz 858570752 Aug 19 07:21 20150819-052002.tar.gz <- Script called via cron, broken tar
Обновление 2
После дальнейших исследований, основанных на приведенном здесь входе, возможно, следует добавить, что cron с именем script работает на виртуальном частном сервере - я подозреваю, что некоторые ограничения могут существовать для заданий cron, которые не документируются хостером (в документах указывается только ограничение на минимальное время повторения).