команда bash внутри crontab не работает

у меня есть crontab, который запускается каждую минуту и удаляет некоторые каталоги и файлы.

мой cron выглядит так

* * * * * bash /var/www/html/Database/Backup/Remove_Old_Backups >/dev/null 2>&1

В моем журнале я вижу команду под управлением

CRON[57937]: (kahoadmin) CMD (bash /var/www/html/Database/Backup/Remove_Old_Backups >/dev/null 2>&1)

Это мой файл скрипта

#!/bin/bash

ROOTDIR="/var/www/html/Database/Backup/Backups/*" 
sudo find $ROOTDIR -mtime +5 | xargs rm -f -r

Если я запускаю этот скрипт напрямую, я работаю и удаляю каталог и файлы. Только в crontab это не работает

может кто-нибудь помочь мне в поиске, что происходит здесь ?

3
задан Nikesh
20.12.2022 10:35 Количество просмотров материала 2977
Распечатать страницу

1 ответ

Я предполагаю, что ваши разрешения неверны для sudo (но также возможно, что вам не хватает путей для find и xargs при запуске из cron)

Если бы это был я, я бы - 1. Поместите файл в /etc / crontab и запустите его от имени root. 2. Измените его на 1-строчный скрипт с меньшим количеством зависимостей (как я часто делал). Я бы поместил следующую строку в /etc / crontab

* * * * * root /bin/find /var/www/html/Database/Backup/Backups mtime +5  -exec rm -rf {}  +

который делает то же самое, не полагаясь на команды xargs

Я замечаю, что вы делаете-rf - вы уверены, что хотите принудительно удалять рекурсивно, особенно автоматизированный процесс во всех подкаталогах ?

1
отвечен davidgo 2022-12-21 18:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх