Проверка скрипта выполняется

У меня есть график работы test.sh для запуска каждые 5 минут, а другое задание test1.sh запланировано на 12:30 вечера, @ 12.30 оба задания будут выполняться и заходят в тупик. Поэтому мне нужно проверить работу test.sh, для которой я использую:

ps -ef | grep test1.sh 

но это всегда верно, поскольку он создает линию для одной и той же команды.

  # ps -ef | grep test1.sh team 24896 607 0 11:55 pts/11 00:00:00 test1.sh team 24925 523 0 11:55 pts/4 00:00:00 grep test1.sh 

как избежать печати grep test1.sh ?

Я очень новичок в unix.

Спасибо, Ann

3 Solutions collect form web for “Проверка скрипта выполняется”

Вы можете просто игнорировать grep один за другим: –

 ps -ef | grep test1.sh | grep -v grep 

другое: –

 ps -ef | grep "[t]est1.sh" 

Второй – спуск, и это экономит много времени.

Если вы просто хотите посмотреть, будет ли он работать, а не вывести ps в grep вы можете использовать pgrep . Это будет выводить только PID процесса и быть намного более эффективным. Я использую флаг -x чтобы он соответствовал точному имени для test1.sh

 pgrep -x test1.sh 876 

Если вы хотите увидеть имя команды, вы также можете использовать флаг -l .

 pgrep -xl test1.sh 876 test1.sh 

И если вы хотите выполнить частичное совпадение, вы можете просто удалить -x

 pgrep -l test 876 test1.sh 877 test2.sh 888 test123.sh 8745 test.bin 

Это происходит потому, что grep и ps запускаются параллельно, поэтому процесс grep сопоставляется, потому что целевая строка test1.sh отображается как аргумент в ps . Простым, но, возможно, неоптимальным способом обойти это было бы:

 ps -ef | grep "test1.sh" | grep -v "grep" 

Второй канал выводит первый и исключает строки, содержащие соответствие для строки «grep».

  • Диапазон командной строки в unix
  • скрипт bash - программа супервизора
  • grep: Не признанный флаг в AIX
  • Извлечение строки из команды fdisk
  • Как работает вилочная бомба?
  • вставить значение в конце каждой записи на основе уникальных идентификаторов
  • Нельзя использовать псевдоним в скрипте, даже если я его определяю чуть выше!
  • Как я могу получить версию vsftpd в переменной оболочки?
  • Назначение переменной из файла, разделенной разделителем
  • Как подключиться к Tar с помощью BASH?
  • Устройство USB должно быть обнаружено в «той же» / dev точке всегда?
  • Настройка скрипта в поле AMI для создания каталогов - vsftpd, pam, mysql
  • Linux и Unix - лучшая ОС в мире.