Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как не запускать вторую программу если первая ничего не выдала? / 6 сообщений из 6, страница 1 из 1
03.04.2008, 00:38:25
    #35231474
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
Вечер, торможу...
Имеется в кроне команда типа такой:
/usr/bin/perl /somepath/somescript.pl | mail -s 'script report' monitor@myserver.com
Скрипт выдает в stdout отчет о своей работе который и отсылается в лист рассылки. А вот если скрипту делать нечего, то он ничего не выдает а сразу выходит... Зато mail потом мне ругается что мол не буду посылать письмо с пустым телом. Как бы запретить mail'у ругаться на это?
Живу в AIX 5.3...
...
Рейтинг: 0 / 0
03.04.2008, 00:42:28
    #35231477
Ося
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
1. переписать оригинальный скрипт, вставить в него вызов mail сделать ветвление по анализу наличия вывода (пара флагов в скипте -- 15мин работы)
2. написать скрипт в котором делать все вышеописанное, т/е/ проверять на пустоту переменную в которую перенаправлять вывод из скрипта
...
Рейтинг: 0 / 0
03.04.2008, 01:00:22
    #35231487
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
Путь №1 почти приемлем - отловить бы только того кто этот скрипт писал....
Путь №2 ..... лучше пойду ловить автора скрипта.
...
Рейтинг: 0 / 0
03.04.2008, 01:11:21
    #35231492
Ося
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
#!/bin/sh

res=`/usr/bin/perl /somepath/somescript.pl`

if [ "$res" != ""  ]
then
        echo $res | mail -s 'script report' monitor@myserver.com
fi


PS написал за 40 сек возможно есть более оптимальнее решение, т/к при большом объеме res будет перерасход памяти/ресурсов
...
Рейтинг: 0 / 0
03.04.2008, 17:10:35
    #35233697
fandr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
можно попробовать использовать "код возврата"...
минимально подправить генерирующий скрипт...
...
Рейтинг: 0 / 0
03.04.2008, 18:26:05
    #35233981
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как не запускать вторую программу если первая ничего не выдала?
ОсяPS написал за 40 сек возможно есть более оптимальнее решение, т/к при большом объеме res будет перерасход памяти/ресурсов
Ну да, я тоже о чем-то таком уже начал задумываться :) Объем вывода там максимум строчек двадцать-тридцать так что проблем не будет.
А вот переписывание оригинального скрипта не прошло. Как оказалось, там используются несколько модулей которые свои внутренние сообщения в принудительном порядке кидают в stdout и перенаправить их можно только целиком перенаправив stdout всего скрипта :( Плюс несколько колбеков в самом скрипте... Так что враппер на весь скрипт самое правильное решение оказывается.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как не запускать вторую программу если первая ничего не выдала? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]