Как запустить sh через cron

Тема в разделе "Администрирование серверов", создана пользователем surfman, 15 ноя 2008.

Модераторы: mefish, stooper
  1. surfman

    surfman

    Регистр.:
    20 мар 2007
    Сообщения:
    273
    Симпатии:
    13
    Такая задача. Обновлял скрипт галереи, после чего очталось 1500 ненужных файлов.

    Галерея находится по адресу domen.com/gallery/
    система директорий до галереи /home/username/data/www/domen.com/gallery/

    Для их удаления скрипт сам сгенерировал файл cleanup.sh с командами удаления. И предложила положить его в дирикторию с галереей.
    Код:
    #!/bin/sh
    rm upgrade/templates/ManifestSystemCheck.html
    rm upgrade/styles/style.css
    ...........................................
    
    где upgrade - поддириктория, тоесть gallery/upgrade/ и тд.

    далее в cron пишу задание sh /home/username/data/www/domen.com/gallery/cleanup.sh
    Но файлы не удаляются, No such file or directory

    ТОесть я немогу понять откуда идет счет дирикторий, и как правильно это сделать.
     
  2. Mutant

    Mutant

    Регистр.:
    10 июн 2006
    Сообщения:
    214
    Симпатии:
    71
    No such file or directory при запуске из крона скорее всего относится не к пути до скрипта, а к пути до sh
    Для cron нужно писать так:

    /bin/sh /home/username/data/www/domen.com/gallery/cleanup.sh
     
  3. surfman

    surfman

    Регистр.:
    20 мар 2007
    Сообщения:
    273
    Симпатии:
    13
    Не помогает.
    Код:
    rm: upgrade/templates/ManifestSystemCheck.html : No such file or directory
    rm: upgrade/styles/style.css : No such file or directory
    rmdir: upgrade/styles : No such file or directory
    
    Тех поддержка рекомендует сначала определить дирикторию.
    cd /home/username/data/www/domen.com/gallery/; sh /home/username/data/www/domen.com/gallery/cleanup.sh
    Пишу все строчку в cron. Но тоже не работает.
     
  4. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Ведущий слеш не забыл? Он же корень, от него счет идет.
     
  5. Mutant

    Mutant

    Регистр.:
    10 июн 2006
    Сообщения:
    214
    Симпатии:
    71
    Что бы точно определится с путями я бы поступил так.
    написал бы в cron следующее:
    (путь к touch может быть другой)

    /usr/bin/touch /home/username/data/www/domen.com/gallery/11111.txt

    потом смотрим в каком каталоге создался файл 11111.txt и уже от него пишем пути
     
  6. surfman

    surfman

    Регистр.:
    20 мар 2007
    Сообщения:
    273
    Симпатии:
    13
    Если можно, поподробнее.
     
  7. RxB

    RxB

    Заблокирован
    Регистр.:
    16 июл 2007
    Сообщения:
    235
    Симпатии:
    51
    Попробуй так:
    Код:
    #!/bin/sh
    rm ./upgrade/templates/ManifestSystemCheck.html
    rm ./upgrade/styles/style.css
    И проверь наличие файлов
    P.S. Да и зачем в крон пихать? Если есть ssh-доступ запусти с него sh имя_скрипта (права на выполнение обязательны) или руками удали
     
  8. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    укажи полный путь от корня вроде:

    Код:
    rm: [B]/home/webadmin/html/site.ru/[/B]upgrade/templates/ManifestSystemCheck.html 
    rm: [B]/home/webadmin/html/site.ru/[/B]upgrade/styles/style.css
    rmdir: [B]/home/webadmin/html/site.ru/[/B]upgrade/styles
    или проверь все пути вручную из домашнего каталога, в котором выполняется скрипт
     
  9. surfman

    surfman

    Регистр.:
    20 мар 2007
    Сообщения:
    273
    Симпатии:
    13
    Да все пути правильные.

    Раз сам CMS, а точнее GALLERY2 сказал, что эти файлы лишние и их нужно удалить, и сам создал файл cleanup.sh и попросил положить его в папку с галереей, и запустить его. Я нагуглил, что можно в cron задать sh /home/username/data/www/domen.com/gallery/cleanup.sh. А не работает.

    Добавлено через 7 минут
    пробывал подставлять полный путь к каждому удаляемому файлу в самом файле cleanup.sh, норезультат такой же.
     
  10. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Да не может такого быть. Руками, руками проверь - из каталога где cleanup.sh сделай
    ls /home/username/data/www/domen.com/gallery/

    либо же
    rm: /home/webadmin/html/site.ru/upgrade/templates/ManifestSystemCheck.html

    и результаты сюда. Или же у крона прав нет на исполнение в каталоге, что вряд ли, или путаница с путями.

    У меня по схожей схеме кроном раз в сутки удаляется кэш.
    Код:
    #!/bin/bash
    
    # remove cache site.ru
    rm -f /home/webadmin/site.ru/html/cache/cache_*