не могу удалить файлы старше x дней через cronjob

Файлы, находящиеся на device1в /mnt/sub, вообще недоступны по этому пути. Переустановите устройство в другом месте или убедитесь, что два устройства установлены в противоположном порядке.

1
27.12.2019, 14:06
2 ответа

Согласно тому, что вы показываете в вопросе и говорите в комментариях , ваш скрипт не исполняемый и не содержит строки #!-.

Как минимум, вы должны сделать скрипт исполняемым с помощью

chmod +x /path/auto_delete_backup_database.sh

и дайте ему правильную#!-строку:

#!/bin/sh

(это должна быть самая первая строка скрипта без пробелов перед ней ).

Если скрипт не является исполняемым, его вообще нельзя будет использовать как скрипт. Попытка запустить такой файл вернет ошибку «Отказано в доступе» (. Возможно, ваш демон cron пытался отправить вам сообщение электронной почты с сообщением об этом ).

Без строки #!-, указывающей вызывающей оболочке, какой интерпретатор оболочки использовать для запуска сценария, это зависит от того, какая оболочка вызывает его, что произойдет. Вы всегда должны иметь соответствующую строку#!-в начале скрипта. В этом случае, поскольку никакие специальные функции bashне используются, достаточно использовать /bin/sh.

Очевидно, что вы также можете запланировать команду findнепосредственно с помощью cron:

0 0 * * * find path -type f -mtime +0 -print -delete >/path/auto_delete_backup_database.log 2>&1

Я думаю, что это подходит для заданий с одной -командой cron. Все более необычное лучше планировать как часть скрипта-оболочки.

Я добавил -printк команде findвыше, что заставит ее выводить имена файлов, которые она пытается удалить (иначе она будет молчать ).

1
27.01.2020, 23:40

Используйте команду chmodдля установки бита выполнения, например.

chmod ugo+x auto_delete_backup_database.sh
0
27.01.2020, 23:40

Теги

Похожие вопросы