DNS-323: скрипт в cron

Март 14, 2012 at 11:15 2 комментария

Можно расширить возможности NAS от D-Link DNS-323 с помощью fun-plug. Про это полно всего в интернете. И телнет можно подключить, и ssh. А можно добавлять в «автозагрузку» свои скрипты. Для этого в файл /mnt/HD_a2/fun-plug можно добавить строчку

crontab абсолютный_путь_к_файлу

В этом файле должно быть содержимое кронтаба, который уже был в системе до нашего вмешательства, плюс расписание запуска собственных скриптов.
Например, так:

                                                                                         
32 2 * * * /usr/sbin/rtc -s^M
30 2 2 * * /usr/sbin/rtc -c^M
59 1 * * * /usr/sbin/daylight &^M
15 5 * * * /mnt/HD_a2/Admin_data/rm_old

Первые три строки — стандартные, а последняя добавлена мной. Свои скрипты надо размещать в подкаталогах /mnt/HD_a2/. Все, что размещено в /bin и т.п. будет удалено при перезагрузке хранилища.
После внесенных изменений выключение уже не страшно. Пользовательские скрипты снова попадут в крон, так как кронтаб будет перезагружен из нашего файла. Его кстати тоже стоит положить куда-то в /mnt/HD_a2/.
Есть еще вот такой нюанс. Не все скрипты, работающие в консоли, будут работать из крона. Дело в том, что крон может иметь совсем другую переменную $PATH, нежели пользователь. И не все команды будут запущены. По моему опыту с wget, mkdir, date, chmod не было проблем. А вот xargs и find не выполнялись. Чтобы вообще не задумываться об этом, надо указывать в скрипте команду shell с абсолютным путем. Чтобы узнать его, надо просто воспользоваться командой which. Скорее всего, она покажет, что нужные команды лежат в /ffp/bin/
Пример скрипта для удаления папок с файлами старше 20 дней:

#!/bin/sh
/ffp/bin/find /mnt/HD_a2/video/ -maxdepth 1 -type d -mtime +20 | /ffp/bin/xargs /ffp/bin/rm -rf 
Реклама

Entry filed under: Linux. Tags: , , , .

amavis:whitelist моего домена не работает remmina: не печатаются символы

2 комментария Add your own

  • 1. Dmitry Duka  |  Март 14, 2012 в 20:40

    Ваще да, системные скрипты лучше писать с полными путями к бинарникам. А что оно выводило в лог, когда ты не указывала полный путь? И где настраивается PATH для crontab?

    Ответить
    • 2. kakabba  |  Март 15, 2012 в 11:03

      в crontab вначале, еще до расписания, можно указать переменные HOME, PATH, SHELL. Например, так: PATH=/etc
      А в лог оно ничего не выводило. Потому что у хранилища нет syslog. Слишком жирно.

      Ответить

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed



%d такие блоггеры, как: