Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Помогите уменьшить bash скрипт

Ответить
Настройки темы
Помогите уменьшить bash скрипт

Новый участник


Сообщения: 20
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: novi
Дата: 30-10-2015
Добрый день. Помогите уменьшить bash скрипт.
Задача скрипта: Мониторить процесс, в случае его отсутствия запускать скрипт и выполнять команду по запуску. Если процесс присутствует, то ничего не запускать.
Программа запуска с параметрами выглядит так: /home/temp/programma /home/temp/sys01.txt
1. /home/temp/programma в единственном экземпляре
2. /home/temp/sys01.txt много текстовых файлов. различие только в цифрах имени файла.

Пример: В процессах висит команда /home/temp/programma /home/temp/sys02.txt, скрипт запускается по крону и проверяет, если есть, то закончить работу не запуская команду /home/temp/programma /home/temp/sys02.txt.
А также в тот же момент проверки всех процессов (которые перечислены в файле script.sh) отсутствует например запущенный процесс /home/temp/programma /home/temp/sys15.txt, то он запускается команду /home/temp/programma /home/temp/sys15.txt, для того чтобы процесс появился.
ЗЫ. В какой-то момент, некоторые sysXX.txt могут быть удалены (ну то есть ненужны будут) из файла script.sh. (например sys43.txt, sys45.txt, sys18.txt, sys26.txt и их запускать ненужно)

Что на данный момент есть.

all.sh


#!/bin/bash

NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`

if [ $NUM -lt 0 ]
then
exit
else
/home/temp/script.sh //в этом скрипте перечислены команды запуска , чуть ниже его код

fi
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys01|wc -w`
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys02|wc -w`
тут и далее много таких строк
NUM=`/bin/pidof -o $$ -o $PPID -o %PPID -x /home/temp/programma |pgrep -f sys50|wc -w`

if [ $NUM -lt 0 ]
then
exit
fi
exit 0 # прекращаем выполнение скрипта

script.sh

/home/temp/programma /home/temp/sys01.txt
/home/temp/programma /home/temp/sys02.txt
/home/temp/programma /home/temp/sys03.txt
тут и далее меняются только цифры в имени файла
/home/temp/programma /home/temp/sys50.txt


уф... увы, я не могу уменьшить скрипт (незнаю как правильно), будьте добры, пожалуйста помогите его уменьшить переменными или как либо ещё.
В данном варианте скрипта all.sh по крону, как я понимаю, запускаются все команды одновременно, что неправильно.

Отправлено: 16:35, 30-10-2015

 

Новый участник


Сообщения: 22
Благодарности: 3

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#!/bin/bash

PROG="/home/temp/programma"

PROG_ARGS="/home/temp/programma /home/temp/sys01.txt
/home/temp/programma /home/temp/sys02.txt
/home/temp/programma /home/temp/sys03.txt
тут и далее меняются только цифры в имени файла
/home/temp/programma /home/temp/sys50.txt"

IFS=$'\n'

for ARG in $PROG_ARGS; do
 if ps ax -o command | grep -v grep | grep -q "$PROG $ARG"; then
  continue
 else
  $PROG $ARG
 fi
done

Отправлено: 14:41, 08-12-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Помогите уменьшить bash скрипт

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Redhat/Fedora - Помогите написать скрипт на Bash VORONUK Общий по Linux 6 18-09-2013 19:56
HDD - [решено] Помогите уменьшить обьем ЖД удалением плохих БЛОКОВ docentdocent Накопители (SSD, HDD, USB Flash) 6 23-10-2012 09:25
BASH скрипт DX-D8 Программирование в *nix 2 21-01-2009 19:18
Прочее - BASH zelo Общий по Linux 3 04-02-2008 10:19
bash scripting Flick Программирование в *nix 5 06-06-2007 18:37




 
Переход