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

surfman

Старатель
Регистрация
20 Мар 2007
Сообщения
282
Реакции
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

ТОесть я немогу понять откуда идет счет дирикторий, и как правильно это сделать.
 
No such file or directory при запуске из крона скорее всего относится не к пути до скрипта, а к пути до sh
Для cron нужно писать так:

/bin/sh /home/username/data/www/domen.com/gallery/cleanup.sh
 
Не помогает.
Код:
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. Но тоже не работает.
 
Ведущий слеш не забыл? Он же корень, от него счет идет.
 
Что бы точно определится с путями я бы поступил так.
написал бы в cron следующее:
(путь к touch может быть другой)

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

потом смотрим в каком каталоге создался файл 11111.txt и уже от него пишем пути
 
  • Заблокирован
  • #7
Попробуй так:
Код:
#!/bin/sh
rm ./upgrade/templates/ManifestSystemCheck.html
rm ./upgrade/styles/style.css

И проверь наличие файлов
P.S. Да и зачем в крон пихать? Если есть ssh-доступ запусти с него sh имя_скрипта (права на выполнение обязательны) или руками удали
 
Если можно, поподробнее.
укажи полный путь от корня вроде:

Код:
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

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

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

Добавлено через 7 минут
укажи полный путь от корня вроде:

Код:
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

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

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

Добавлено через 7 минут

пробывал подставлять полный путь к каждому удаляемому файлу в самом файле cleanup.sh, норезультат такой же.

Да не может такого быть. Руками, руками проверь - из каталога где 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_*
 
Назад
Сверху