2009-05-24 4 views
1

У меня есть немного рассола здесь и интересно, если кто-то может дать мне некоторые указатели:Cron Работа на Ubuntu Hardy Выполнение Но не Удаление файлов Как ожидается

У меня есть хрон, который выполняет для конкретного пользователя ежедневно и предполагается, что файлы будут развернуты в определенном каталоге. Технически это две рабочие места. Я включил cron.log, чтобы проверить, что они на самом деле исполнения, и они:

May 24 11:03:01 AppNameGoesHere /USR/SBIN/CRON[11257]: (mongrel_AppNameGoesHere) 
    CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/ 
    {popular,index,purchasing,purchasing-alternate,support,about-us,guarantee,screenshots}.htm{,l}) 
May 24 11:04:01 AppNameGoesHere /USR/SBIN/CRON[11260]: (mongrel_AppNameGoesHere) 
    CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/ 
    {stats,popular,bcf,articles,expenses}) 

Я удалил фактические имена пользователей и отформатировать его так, что он менее некрасиво на StackOverflow.

Теперь, мой вопрос: несмотря на то, что я вижу, как эти удаления выполняются и, видимо, преуспевают в журнале, если я иду в указанный каталог, файлы все еще существуют. Сначала я подозревал, что разрешение hijinx продолжается, но я проверил, что могу вручную удалить файлы вручную, выполнив вход пользователя mongrel_AppNameGoesHere и выдав отдельные команды rm или скопировав/вставив задание cron в командную строку. Все, что я не делаю вручную, остается незащищенным, несмотря на то, что дни успешного выполнения задания cron успешно выполняются.

Любые предложения относительно того, что может произойти? Раньше я использовал Dapper Drake с этими заданиями cron в файле/etc/crontab, и когда я обновился до Hardy, я переместил их на пользовательские crontab (через sudo crontab -e - u mongrel_AppNameGoesHere), и это было тем местом, где они, похоже, перестали работать.)

+0

rm дает какой-либо выход, если вы передаете его в файл в cron ala «rm -rf/var/www/snip/{a, b, c}> /home/me/test.txt" ?? –

ответ

6

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

По умолчанию/bin/ш используется так просто поставить:

SHELL =/бен/Баш

в качестве первой строки в вашем кронтаб так что вещи должны начать работать снова.

+0

Хотелось бы, чтобы я мог выложить миллион раз. Спасибо. –

+0

@rasjani ... Ницца! Иногда я не вижу дерева для деревьев: P –