например в post-mount вписать строки:
это пример использования встроенного крона ....Code:mkdir -p /var/spool/cron/crontabs /usr/sbin/crond echo "1 12 * * * нужная_вам_команда" | /usr/bin/crontab -
подробное описание первых 5-ти полей здесь
Читал я про крон , и честно говоря для меня это тёмный лес , нехватает у меня мозгов как заставить его это всё работать
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
например в post-mount вписать строки:
это пример использования встроенного крона ....Code:mkdir -p /var/spool/cron/crontabs /usr/sbin/crond echo "1 12 * * * нужная_вам_команда" | /usr/bin/crontab -
подробное описание первых 5-ти полей здесь
Огромное спасибо за помощь , но помоему я сам нашёл кое что что мне поможет.
Как токо испытаю отпишусь.
Создал два файла
/opt/etc/avtostart
/opt/etc/avtostop
с таким содержимым
avtostart
avtostopCode:#!/bin/sh sdparm --command=start /dev/discs/discb/part1 sleep 15 /opt/etc/init.d/08samba start
Сделал их исполняемыми , при запуске этих файлов из консоли всё отрабатывает нормально (хотелось бы что то добавить в эти файлы чтобы их исполнение отображалось в системном логе ,но не хватает на это мозгов , буду благодарен за подсказку что в них надо дописать)Code:#!/bin/sh /opt/etc/init.d/08samba stop sleep 15 sdparm --command=stop /dev/discs/discb/part1
добавляю в crontab запись
Если я правильно понял эта запись должна запустить файл avtostart в 22:56 но это почемуто не происходит . Поправте меня что я делаю не правильно ???Code:56 22 * * * root sh /opt/etc/avtostart
Last edited by Omega; 12-03-2012 at 12:51. Reason: fixed
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
Огромное спасибо за подсказку , всё завелосьВо всех скриптах запускаемых из крона пути должны быть полными ...
sdparm должен быть с путем от "/"
Теперь также нужно создать скрипт который бы проверял сколько сейчас времени сравнивал его с диапазоном заданого времени 1:00-16:00 и если реальное время входит в диапазон заданого времени то он бы запускал скрипт avtostop
а если реальное время не входит в диапазон заданого времени то он бы запускал скрипт avtostartCode:/opt/etc/avtostop start
Запуск этого скрипта я бы добавил в пост-моунCode:/opt/etc/avtostart start
Это нада например для того если я перегружу роутер или например отключится електричество , то после загрузки роутера в зависимости от того какое время винт с самбой или остановится или запустится.
Спасибо !!!
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
a S08samba умеет стоп делать? Да и размонтировать раздел перед выключением не помешает
Code:killall smbd killall nmbd sleep 2 umount -r /dev/discs/discb/part1 sleep 5 sdparm --command=stop /dev/discs/discb
RT-N16 TomatoRAF
Да самба умеет делать стоп с этим проблем нетa S08samba умеет стоп делать? Да и размонтировать раздел перед выключением не помешает
За розмонтирование спасибо ,во токо вопрос как его потом правильно подмонтировать если не трудно подкинте скриптик и для монтирования , а то я ещё не волшебник , просто пытаюсь научится . Спасибо !!!
В очередной раз спасибо за подсказкуЗ.Ы. Добавление записи в сислог поиск по "logger"
теперь скрипты выглядят так
avtostart
avtostopCode:#!/bin/sh /opt/bin/sdparm --command=start /dev/discs/discb/part1 | logger & sleep 15 /opt/etc/init.d/08samba start | logger &
и всё теперь прекрастно логируетсяCode:#!/bin/sh /opt/etc/init.d/08samba stop | logger & sleep 15 /opt/bin/sdparm --command=stop /dev/discs/discb/part1 | logger &
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
Если изначально монтировалось по fstab, то
Code:mount /dev/discs/discb/part1
RT-N16 TomatoRAF
Я так понемаю , что если в консоли дать команду
то HDD должен отмонтироватся. А он чёто не хотит , вот такую ошибку выдаётCode:umount -r /dev/discs/discb/part1
Code:umount: can't umount /dev/discs/discb/part1: Invalid argument
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
так уже наверное отмонтировано ... что mount говорит?
RT-N16 TomatoRAF
Вот это говориттак уже наверное отмонтировано ... что mount говорит?
Code:[root@RT-N16 root]$ mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devfs on /dev type tmpfs (rw,noatime) devpts on /dev/pts type devpts (rw) tmpfs on /tmp type tmpfs (rw,noatime) usbfs on /proc/bus/usb type usbfs (rw) /dev/sda2 on /opt type ext3 (rw,noatime,data=ordered) /dev/sda3 on /tmp/mnt/disca_3 type ext3 (rw,noatime,data=ordered) /dev/sdb1 on /tmp/mnt/discb_1 type ext3 (rw,noatime,data=ordered) [root@RT-N16 root]$
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
для размонтирования можно указать /dev/sdb1 или /tmp/mnt/discb_1 , а монтироватьCode:mount /dev/sdb1 /tmp/mnt/discb_1 -o rw,noatime
RT-N16 TomatoRAF
для того, чтобы размонтировать файловую систему следует закрыть все процессы, которые имеют на ней открытые файлы, что довольно сложно.
Кстати, было другое решение подобной проблемы, а именно автоматическое отключение диска после N минут отсутствия обращений к нему с автоматическим включением когда он потребуется:
http://wl500g.info/showpost.php?p=47135&postcount=10
Спасибо всем за помощ , вечером после роботы буду дальше розбератся
Написал 2 файлика
/opt/etc/avtostart
/opt/etc/avtostopCode:#!/bin/sh # Запуск HDD /opt/bin/sdparm --command=start /dev/discs/discb/part1 | logger & sleep 10 # Монтирование HDD mount /dev/sdb1 /tmp/mnt/discb_1 -o rw,noatime sleep 5 # Запуск samba /opt/etc/init.d/08samba start | logger &
И для их запуска в нужное мне время добавил в /opt/etc/crontabCode:#!/bin/sh # Остановка samba /opt/etc/init.d/08samba stop | logger & sleep 15 # Отмонтирование HDD umount -r /tmp/mnt/discb_1 sleep 5 # Остановка шпинделя HDD /opt/bin/sdparm --command=stop /dev/discs/discb/part1 | logger &
Всё работает ,всем огромное спасибо за помощьCode:00 17 * * * root sh /opt/etc/avtostart 30 01 * * * root sh /opt/etc/avtostop
Также решил протестировать scsi-stop . Установил его
прверел его роботу с моим диском командой
Как оказалось scsi-stop не хочет дружить с моим диском , вернул ошибкуCode:/opt/etc/scsi-stop /dev/discs/discb/disc
Очень обидно ,так как очень хотелось заюзать скрипт который при простое HDD его автоматом отключает и при обращении к нему его автоматом запускаетCode:/dev/discs/discb/disc is not a SCSI block device
Вот собственно сам скрипт
Вот тема с описаниемCode:#!/bin/sh if /usr/bin/[ $# -ne 1 ]; then /bin/echo 1>&2 "Usage: $0 <device>" exit 1 fi PERIOD=30 BOUNDARY=1200 SCSISTOP=/usr/local/sbin/scsi-stop LOGFILE=/tmp/scsi-stop.log searchstr="disk_io:" devaddr="(`/bin/ls -l $1 | /usr/bin/awk '{print($5 int($6/16))}'`)" str=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` cooltime=0 stopped=0 while /bin/true; do /bin/sleep $PERIOD newstr=`/bin/grep "$searchstr" /proc/stat | devaddr="$devaddr" /usr/bin/awk -v 'RS= |\n' -F : '{ if($1==ENVIRON["devaddr"]) print($2) }'` if /usr/bin/[ "$newstr" = "$str" ]; then cooltime=$(($cooltime + $PERIOD)) if /usr/bin/[ $cooltime -ge $BOUNDARY -a $stopped -eq 0 ]; then $SCSISTOP $1 time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Cooled down..." >> $LOGFILE stopped=1 fi else if /usr/bin/[ $cooltime -ne 0 ]; then time=`/bin/date '+%b %e %H:%M:%S'` /bin/echo "$time: Disk first used after $cooltime seconds" >> $LOGFILE fi cooltime=0 str=$newstr stopped=0 fi done
Былобы не плохо если бы ктото из знающих людей подправил скриптик для роботы с sdparm Спасибо !!!!
Last edited by Omega; 12-03-2012 at 12:49. Reason: fixed
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
каламбурчик вышел ... заставляет задуматься, а нужен ли этот скази-стоп, если народ не знает как от него избавиться .
хм ... /opt/etc странное место для бинарника. И зачем он в опт, если есть/opt/etc/scsi-stop /dev/discs/discb/disc
/usr/sbin/scsi-stop .Вот его и надо запускатьа /dev/disks это архаизм со старого ядра, если я чего не путаю.Code:/usr/sbin/scsi-stop /dev/sdb
RT-N16 TomatoRAF