Page 12 of 15 FirstFirst ... 21011121314 ... LastLast
Results 166 to 180 of 212

Thread: Проблемы с остановкой внешнего HDD (hdparm)

  1. #166
    Читал я про крон , и честно говоря для меня это тёмный лес , нехватает у меня мозгов как заставить его это всё работать
    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

  2. #167
    Quote Originally Posted by max2007 View Post
    Читал я про крон , и честно говоря для меня это тёмный лес , нехватает у меня мозгов как заставить его это всё работать
    например в post-mount вписать строки:
    Code:
    mkdir -p /var/spool/cron/crontabs
    /usr/sbin/crond
    echo "1 12 * * * нужная_вам_команда" | /usr/bin/crontab -
    это пример использования встроенного крона ....
    подробное описание первых 5-ти полей здесь

  3. #168
    Огромное спасибо за помощь , но помоему я сам нашёл кое что что мне поможет.
    Как токо испытаю отпишусь.

    Создал два файла
    /opt/etc/avtostart
    /opt/etc/avtostop

    с таким содержимым
    avtostart
    Code:
    #!/bin/sh
    sdparm --command=start /dev/discs/discb/part1
    sleep 15
    /opt/etc/init.d/08samba start
    avtostop
    Code:
    #!/bin/sh
    /opt/etc/init.d/08samba stop
    sleep 15
    sdparm --command=stop /dev/discs/discb/part1
    Сделал их исполняемыми , при запуске этих файлов из консоли всё отрабатывает нормально (хотелось бы что то добавить в эти файлы чтобы их исполнение отображалось в системном логе ,но не хватает на это мозгов , буду благодарен за подсказку что в них надо дописать)

    добавляю в crontab запись
    Code:
    56 22 * * * root sh /opt/etc/avtostart
    Если я правильно понял эта запись должна запустить файл avtostart в 22:56 но это почемуто не происходит . Поправте меня что я делаю не правильно ???
    Last edited by Omega; 12-03-2012 at 13: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

  4. #169
    Quote Originally Posted by max2007 View Post
    Создал два файла
    /opt/etc/avtostart
    /opt/etc/avtostop

    с таким содержимым
    avtostart
    Code:
    #!/bin/sh
    sdparm --command=start /dev/discs/discb/part1
    sleep 15
    /opt/etc/init.d/08samba start
    avtostop
    Code:
    #!/bin/sh
    /opt/etc/init.d/08samba stop
    sleep 15
    sdparm --command=stop /dev/discs/discb/part1
    Сделал их исполняемыми , при запуске этих файлов из консоли всё отрабатывает нормально (хотелось бы что то добавить в эти файлы чтобы их исполнение отображалось в системном логе ,но не хватает на это мозгов , буду благодарен за подсказку что в них надо дописать)

    добавляю в crontab запись
    Code:
    56 22 * * * root sh /opt/etc/avtostart
    Если я правильно понял эта запись должна запустить файл avtostart в 22:56 но это почемуто не происходит . Поправте меня что я делаю не правильно ???
    Во всех скриптах запускаемых из крона пути должны быть полными ...
    sdparm должен быть с путем от "/"
    З.Ы. Добавление записи в сислог поиск по "logger"
    Last edited by tempik; 10-04-2011 at 22:35.

  5. #170

    спасибо

    Во всех скриптах запускаемых из крона пути должны быть полными ...
    sdparm должен быть с путем от "/"
    Огромное спасибо за подсказку , всё завелось
    Теперь также нужно создать скрипт который бы проверял сколько сейчас времени сравнивал его с диапазоном заданого времени 1:00-16:00 и если реальное время входит в диапазон заданого времени то он бы запускал скрипт avtostop
    Code:
    /opt/etc/avtostop start
    а если реальное время не входит в диапазон заданого времени то он бы запускал скрипт avtostart
    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

  6. #171
    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

  7. #172
    a S08samba умеет стоп делать? Да и размонтировать раздел перед выключением не помешает
    Да самба умеет делать стоп с этим проблем нет
    За розмонтирование спасибо ,во токо вопрос как его потом правильно подмонтировать если не трудно подкинте скриптик и для монтирования , а то я ещё не волшебник , просто пытаюсь научится . Спасибо !!!
    З.Ы. Добавление записи в сислог поиск по "logger"
    В очередной раз спасибо за подсказку
    теперь скрипты выглядят так
    avtostart
    Code:
    #!/bin/sh
    /opt/bin/sdparm --command=start /dev/discs/discb/part1 | logger &
    sleep 15
    /opt/etc/init.d/08samba start | logger &
    avtostop
    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

  8. #173
    Если изначально монтировалось по fstab, то
    Code:
    mount /dev/discs/discb/part1
    RT-N16 TomatoRAF

  9. #174
    Я так понемаю , что если в консоли дать команду
    Code:
    umount -r /dev/discs/discb/part1
    то HDD должен отмонтироватся. А он чёто не хотит , вот такую ошибку выдаёт
    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

  10. #175
    так уже наверное отмонтировано ... что mount говорит?
    RT-N16 TomatoRAF

  11. #176
    так уже наверное отмонтировано ... что 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

  12. #177
    для размонтирования можно указать /dev/sdb1 или /tmp/mnt/discb_1 , а монтировать
    Code:
    mount /dev/sdb1 /tmp/mnt/discb_1 -o rw,noatime
    RT-N16 TomatoRAF

  13. #178
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    для того, чтобы размонтировать файловую систему следует закрыть все процессы, которые имеют на ней открытые файлы, что довольно сложно.

    Кстати, было другое решение подобной проблемы, а именно автоматическое отключение диска после N минут отсутствия обращений к нему с автоматическим включением когда он потребуется:
    http://wl500g.info/showpost.php?p=47135&postcount=10

  14. #179
    Спасибо всем за помощ , вечером после роботы буду дальше розбератся

    Написал 2 файлика
    /opt/etc/avtostart
    Code:
    #!/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/avtostop
    Code:
    #!/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 &
    И для их запуска в нужное мне время добавил в /opt/etc/crontab
    Code:
    00 17 * * * root sh /opt/etc/avtostart 
    30 01 * * * root sh /opt/etc/avtostop
    Всё работает ,всем огромное спасибо за помощь
    Также решил протестировать scsi-stop . Установил его
    прверел его роботу с моим диском командой
    Code:
    /opt/etc/scsi-stop /dev/discs/discb/disc
    Как оказалось scsi-stop не хочет дружить с моим диском , вернул ошибку
    Code:
    /dev/discs/discb/disc is not a SCSI block device
    Очень обидно ,так как очень хотелось заюзать скрипт который при простое HDD его автоматом отключает и при обращении к нему его автоматом запускает
    Вот собственно сам скрипт
    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 13: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

  15. #180
    Quote Originally Posted by max2007 View Post
    А почему совместили мою тему с этой они не как не подходят друг к другу , эта тема "Как сделать, что бы внешний HDD не останавливался?"
    А моя как раз на оборот должна называтся.Как то это не правильно
    каламбурчик вышел ... заставляет задуматься, а нужен ли этот скази-стоп, если народ не знает как от него избавиться .
    /opt/etc/scsi-stop /dev/discs/discb/disc
    хм ... /opt/etc странное место для бинарника. И зачем он в опт, если есть
    /usr/sbin/scsi-stop .Вот его и надо запускать
    Code:
    /usr/sbin/scsi-stop /dev/sdb
    а /dev/disks это архаизм со старого ядра, если я чего не путаю.
    RT-N16 TomatoRAF

Page 12 of 15 FirstFirst ... 21011121314 ... LastLast

Similar Threads

  1. Подключение внешнего жесткого диска WD MyBook 3TiB (LBD)
    By Ilmarranen in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 40
    Last Post: 22-06-2014, 10:36
  2. выбор внешнего Hdd
    By TIk in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 104
    Last Post: 15-03-2009, 21:42

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •