Results 1 to 6 of 6

Thread: Помогите с написанием скрипта

  1. #1

    Question Помогите с написанием скрипта

    Что хочу сделать:
    В post-mount хочу загнать скрипт, проверяющий:
    1. Смонтирована ли папка opt на флешке в /opt , если нет - монтировать, если да - ничего не делать.
    2. Наличие файла /opt/swap.file , если не находит - сделать его и смонтировать, если нашла но не смонтирован - смонтировать, если уже смонтирован - ничего не делать.
    3. Запущены ли процессы rtorrent и smbd, если да - перезапускать, нет - просто запускать.
    Пытался сделать так:
    Code:
    #!/bin/sh
    if ! [ -d /opt/bin ]; then
    mount -o bind,rw,sync,noatime /tmp/mnt/disc0_1/opt /opt
    fi
    
    if ! [ -s /opt/swap.file ]; then
    {
    dd if=/dev/zero of=/opt/swap.file bs=1M count=70 && mkswap /opt/swap.file && swapon /opt/swap.file
    }
    else
            {
            swap=`free -o | grep Swap`
            swap1="Swap: 0 0 0"
            if $swap == $swap1
            then
            mkswap /opt/swap.file && swapon /opt/swap.file
            fi
            }
    fi
    
    if `top -b -n 1 | grep rtorrent` then
    /opt/etc/init.d/S99rtorrent stop && /opt/etc/init.d/S99rtorrent start
    else
    /opt/etc/init.d/S99rtorrent start
    fi
    
    if `top -b -n 1 | grep smbd` then
    /opt/etc/init.d/S08samba restart
    else
    /opt/etc/init.d/S08samba start
    fi
    выдаёт ошибки в 18 и 23 строчках, монтирует папку, но при подключении ещё одного диска - размонтирует и флешку и диск из /tmp/mnt , swap не монтирует, процессы не запускает/перезапускает.
    Фактически - мой первый скрипт, объясните, пожалуйста, что не так делаю?
    Заранее спасибо за помощь!
    Last edited by BDMN; 04-02-2010 at 21:01.

  2. #2
    Join Date
    Feb 2007
    Location
    Moscow, Russia
    Posts
    3,805
    Code:
    if [ -n "`/bin/ps | grep rtorrent | grep -v grep`" ] ; then
    и вообще эти проверки не нужны --- сделайте всегда restart
    Last edited by al37919; 05-02-2010 at 08:20.

  3. #3
    Я бы вообще переписал ваш скрипт так:
    Code:
    #!/bin/sh
    # проверим, тот ли подключён хард
    if [ ! -d /tmp/mnt/disc0_1/opt/ ]; then
    	/usr/bin/logger -t post-mount "/opt on external storage unavailable, exiting";
    	exit 0;
    fi
    
    # проверим, не смонтирован ли уже /opt
    if [ $(/bin/grep -c /opt /proc/mounts) -lt 1 ]; then
    	/bin/mount -obind,noatime,nodiratime /tmp/mnt/disc0_1/opt/ /opt \
    		&& /usr/bin/logger -t post-mount "Mounted /opt";
    fi
    
    # если /opt смонтирован успешно, можно подключить своп
    if [ -w /opt ]; then
    	if [ ! -s /opt/swap.file ]; then
    		/bin/dd if=/dev/zero of=/opt/swap.file bs=1M count=70
    	fi
    
    	if [ $(/bin/grep -c "/opt/swap.file" /proc/swaps) -lt 1 ]; then
    		/bin/mkswap /opt/swap.file && swapon /opt/swap.file && \
    			/usr/bin/logger -t post-mount "Enabled swap in /opt/swap.file"
    	fi
    fi
    
    # если присутствует скрипт rc.unslung, стартуем
    if [ -x /opt/etc/init.d/rc.unslung ]; then
    	/opt/etc/init.d/rc.unslung start
    	/usr/bin/logger -t post-mount "Started rc.unslung"
    fi
    пара примечаний:
    1) своп в файле -- плохая идея. выделите под него отдельный раздел -- доступ будет быстрее + монтироваться он будет из fstab
    2) скрипт rc.unslung предназначен для запуска всего, что он найдёт в /opt/etc/init.d/
    wl500gP 128MB + 8GB flash 1.9.2.7-rtn-r5438

  4. #4
    dmig
    Спасибо за настолько развёрнутую помощь, очень благодарен, много нового узнал, ещё больше полюбил роутер))
    Один вопрос - куда logger пишет?

  5. #5
    Quote Originally Posted by BDMN View Post
    куда logger пишет?
    /tmp/syslog.log
    ASUS RT-N16 1.9.2.7-rtn, Zotac ZBOX (rtorrent@Ubuntu 13.10)

  6. #6
    Join Date
    Sep 2005
    Posts
    445
    Quote Originally Posted by dmig View Post
    пара примечаний:
    1) своп в файле -- плохая идея. выделите под него отдельный раздел -- доступ будет быстрее + монтироваться он будет из fstab
    а что мешает swap-файл монтировать в fstab ???
    Я вот хочу онказатся от отдельного раздела для opt и swap

Similar Threads

  1. Не ошибитесь в выборе роутера!
    By Oleg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 1634
    Last Post: 09-01-2013, 19:21
  2. Помогите плз написать shell script
    By Break Action in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 2
    Last Post: 04-06-2009, 11:14
  3. Помогите! Виснет роутер примерно раз в неделю!
    By denver_83 in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 22
    Last Post: 10-11-2008, 09:32
  4. Помогите разобрать скрипт rc.unslung
    By raiwo in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 5
    Last Post: 28-10-2008, 19:51

Posting Permissions

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