Невозможно получить строку из crontab -l с помощью команды pssh - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть файл / tmp / hostlist, содержащий хосты 1000+.Я пытаюсь извлечь строку, содержащую определенное слово из crontab -l на 1000+ хостах, с помощью команды pssh, чтобы ускорить выполнение задачи, но не могу получить строку

Я пытаюсь выполнить команду ниже.Причина использования echo \$(echo ) заключается в отображении вывода в одной строке при запуске более чем одной команды ОС

pssh -h /tmp/hostlist -i "echo \$(echo ), \$(crontab -l|grep root)"

Приведенная выше команда работает нормально, когда я заменил «crontab -l | grep root» на любую ОСКоманда, имеющая проблему с crontab -l -> Она не отображает ожидаемый вывод.

Просто для добавления-

Приведенная выше команда работает, когда используется только одна команда, как показано ниже.

pssh -h /tmp/hostlist -i 'crontab -l|grep -i root'  --> Works fine

Есть ли возможность использовать более одной команды и отображать вывод в одной строке с помощью команды crontab -l, как показано ниже.

pssh -h /tmp/hostlist -i "echo \$(echo ), \$(crontab -l|grep root),  \$(uptime)"   --> doesn't work or doesn't give expected output of crontab -l|grep root

и при использовании ниже без команды crontab работает нормально.

pssh -h /tmp/hostlist -i "echo \$(echo ), \$(uname -a),  \$(uptime)" --> Works fine
...