powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как не запускать вторую программу если первая ничего не выдала?
6 сообщений из 6, страница 1 из 1
как не запускать вторую программу если первая ничего не выдала?
    #35231474
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вечер, торможу...
Имеется в кроне команда типа такой:
/usr/bin/perl /somepath/somescript.pl | mail -s 'script report' monitor@myserver.com
Скрипт выдает в stdout отчет о своей работе который и отсылается в лист рассылки. А вот если скрипту делать нечего, то он ничего не выдает а сразу выходит... Зато mail потом мне ругается что мол не буду посылать письмо с пустым телом. Как бы запретить mail'у ругаться на это?
Живу в AIX 5.3...
...
Рейтинг: 0 / 0
как не запускать вторую программу если первая ничего не выдала?
    #35231477
Фотография Ося
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. переписать оригинальный скрипт, вставить в него вызов mail сделать ветвление по анализу наличия вывода (пара флагов в скипте -- 15мин работы)
2. написать скрипт в котором делать все вышеописанное, т/е/ проверять на пустоту переменную в которую перенаправлять вывод из скрипта
...
Рейтинг: 0 / 0
как не запускать вторую программу если первая ничего не выдала?
    #35231487
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Путь №1 почти приемлем - отловить бы только того кто этот скрипт писал....
Путь №2 ..... лучше пойду ловить автора скрипта.
...
Рейтинг: 0 / 0
как не запускать вторую программу если первая ничего не выдала?
    #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
как не запускать вторую программу если первая ничего не выдала?
    #35233697
fandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно попробовать использовать "код возврата"...
минимально подправить генерирующий скрипт...
...
Рейтинг: 0 / 0
как не запускать вторую программу если первая ничего не выдала?
    #35233981
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОсяPS написал за 40 сек возможно есть более оптимальнее решение, т/к при большом объеме res будет перерасход памяти/ресурсов
Ну да, я тоже о чем-то таком уже начал задумываться :) Объем вывода там максимум строчек двадцать-тридцать так что проблем не будет.
А вот переписывание оригинального скрипта не прошло. Как оказалось, там используются несколько модулей которые свои внутренние сообщения в принудительном порядке кидают в stdout и перенаправить их можно только целиком перенаправив stdout всего скрипта :( Плюс несколько колбеков в самом скрипте... Так что враппер на весь скрипт самое правильное решение оказывается.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как не запускать вторую программу если первая ничего не выдала?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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