Управление заданиями планировщика D-Link DNS-325 с плагином fun_plug

D-Link DNS-325Несколько дней назад я приобрел себе домой сетевое хранилище (далее — NAS) D-Link DNS-325 — одно из самых популярных устройств в своем классе, имеющее не только прекрасное соотношение цена/качество, но и огромный потенциал для твика. В Сети есть множество мануалов по доработке программного обеспечения данного NAS’а, однако не вся информация доступна на русском языке. В процессе более тесного знакомства с устройством я постараюсь восполнять данный пробел.

Проблема планировщика fun_plug

После установки плагина fun_flug на D-Link DNS-325 я решил добавить несколько заданий планировщика для выполнения автоматической индексации папок с данными. При этом выяснилось, что таблица заданий планировщика (далее — crontab) сбрасывается в первоначальное состояние при каждой перезагрузке устройства. Для решения проблемы был найден скрипт uwcron от Uli Wolf, после удачного «внедрения» которого я написал эту заметку, являющуюся очень вольным переводом статьи uwcron: Cron for the fun_plug.

Исходные данные

Все действия, описанные ниже, выполнялись на NAS’е D-Link DNS-325 с официальной прошивкой версии 1.03 и плагином fun_plug версии 0.7. Cкрипт uwcron устанавливался из репозитория Uli.

Установка uwcron

Для установки uwcron достаточно подключиться к устройству с помощью SSH (или Telnet) под именем root и выполнить следующие команды:

slacker -UaA uli:uwcron
[[ -f /ffp/start/uwcron.sh.new ]] && mv /ffp/start/uwcron.sh.new /ffp/start/uwcron.sh
chmod a+x /ffp/start/uwcron.sh

Добавление заданий

Для добавления заданий планировщика необходимо перейти в папку /ffp/etc/cron.d и создать в ней любое количество файлов с любыми именами. Каждый из этих файлов должен иметь формат crontab и содержать одну или несколько строк, определяющих задания. Например, для интересующей меня индексации содержимого папок /mnt/HD/HD_a2/Downloads на 15й, /mnt/HD/HD_a2/Movies на 30й ну и, наконец, /mnt/HD/HD_a2/Music на 45й минуте каждого часа был создан файл upnpdbmgr, имеющий следующее содержимое:

15 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Downloads
30 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Movies
45 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Music

Управление uwcron

После добавления всех нужных заданий необходимо запустить uwcron командой /ffp/start/uwcron.sh start, а затем посмотреть, что получилось, командой crontab -l. В моем случае она отображает примерно такую информацию (добавленные выше определения заданий подсвечены):

30 2 * * * /usr/sbin/stime&
*/10 * * * * /usr/sbin/rlog /var/log/user.log 800
### UWCRON BEGIN ###
# DO NOT REMOVE OR CHANGE THE DEFINITIONS HERE
# FOR CHANGES GO TO THE CORRESPONDING FILES, SEE BELOW

### BEG: Definition from upnpdbmgr #############################################
15 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Downloads
30 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Movies
45 * * * * /usr/local/modules/sbin/upnpdbmgr --mode=add /mnt/HD/HD_a2/Music
### END: Definition from upnpdbmgr #############################################

### UWCRON END ###

Учтите, что после внесения любых изменений в файлы из папки /ffp/etc/cron.d следует выполнять команду /ffp/start/uwcron.sh restart.

Заключение

На мой взгляд, представленной информации вполне достаточно для полноценного использования планировщика D-Link DNS-325 с плагином fun_plug. Можете смело перезагрузить NAS и выполнить команду crontab -l. Если Вы были внимательны, результат ее работы не должен отличаться от уже виденного ранее — все добавленные Вами задания должны быть на своем месте.

Понравилась статья?

 Подпишитесь на RSS или почтовую рассылку

 Поделитесь ссылкой в социальной сети или блоге

 Поделитесь ссылкой в социальной сети или блоге

Управление заданиями планировщика D-Link DNS-325 с плагином fun_plug: 22 комментария

    • Я не рекомендую этого делать, хотя, конечно, можно. Откройте файл /etc/NAS_CFG/config.xml в том же mcedit, найдите вот такие строки:

      <user.log>
          <count>1</count>
          <item id="1">
              <method>1</method>
              <1>*/10</1>
              <2>*</2>
              <3>*</3>
              <4>*</4>
              <5>*</5>
              <run>/usr/sbin/rlog /var/log/user.log 800</run>
          </item>
      </user.log>

      удалите все, кроме:

      <user.log>
      </user.log>

      и перезагрузите NAS.

      • Не получается:( Может я не с того начал, у меня такая проблема, когда нас не в работе, винт паркует головки, но каждые ~10 минут просыпается, крутится минут 5-8, опять паркует головки… В общем, получается, когда нас простаивает винт все равно крутится… Хотелось бы, чтобы он при простое парковал головки, не крутился и спал, пока не потребуется.
        Еще заметил интересную особенность, бывает fun_plug не загружается при перезагрузке, так вот тогда, винт в простое очень правильно спит и никто его не будет…
        Вот я и подумал, может от этого задания он просыпается */10 * * * * /usr/sbin/rlog /var/log/user.log 800?

        • А всяческие Amazon S3, dlinkCloud и т.п. у Вас не запущены? Еще где-то попадалась инфа, что с прошивками старше 1.03 бывают проблемы с незасыпающими дисками. У меня все облачные сервисы отключены, fun_plug запущен всегда, если Transmission и Twonky ничего не делают, винты спят.

  1. Не давно пытался настроить планировщик, но так ничего и невышло. После этого поста захотелось поробовать снова.

  2. А можно ли планировщиком настроить синхронизацию времени(NTP). Команду не подскажете?

  3. Моё первое знакомство с Linux состоялось только сейчас, при настройке моего dns-325, поэтому прошу прощения, если мой вопрос покажется слишком глупым. У меня не получается заставить cron выполнять удаление файлов из директории (все файлы, которые старше одних суток). Подскажите, пожалуйста, где я ошибся?
    uwcron я установил успешно, в папку /ffp/etc/cron.d поместил файл mycron со следующим содержимым:

    10 21 * * * find /mnt/HD/HD_b2/foscam -mtime +1 -exec rm -rf {} \;

    Проверяю задания через crontab -l, ответ следующий:

    30 2 * * * /usr/sbin/stime&
    */10 * * * * /usr/sbin/rlog /var/log/user.log 800
    ### UWCRON BEGIN ###
    # DO NOT REMOVE OR CHANGE THE DEFINITIONS HERE
    # FOR CHANGES GO TO THE CORRESPONDING FILES, SEE BELOW
     
    ### BEG: Definition from mycron ################################################
    10 21 * * * find /mnt/HD/HD_b2/foscam/192 -mtime +1 -exec rm -rf {} \;
    ### END: Definition from mycron ################################################

    Что-то даже не знаю где искать ошибку.

    • Точка с запятой в конце команды не нужна, не знаю, может ли это повлиять на правильность работы планировщика. Лично я добавил бы вот такую команду вместо Вашей:
      cd /mnt/HD/HD_b2/foscam/192 && find . -mtime +1 -delete
      Все остальное похоже не правду.

  4. Извиняюсь, в предыдущем посте опечатку сделал, путь в файле mycron само собой указан такой же, как и при выводе списка заданий.

  5. Ура! Всё заработало! Действительно, проблема была в том, что не хватало перевода строки. Спасибо за помощь, я бы, наверное, долго еще догадывался в чем проблема 🙂

  6. Сергей, вопрос на засыпку — есть у Вас uwcron? не могу найти нигде. в репозиториях нету его. имею dns-325 уже 4 года, только сейчас начал в линукс вникать…. а то инструкция есть (в нескольких местах), а самого uwcron’a нет нигде.

Оставить комментарий