Назад | Перейти на главную страницу

Могу ли я узнать, какой сценарий какую ошибку выводит?

Есть сценарий, который вызывает другие сценарии, а они вызывают другие ... Я точно не знаю, какие сценарии вызываются и сколько их. Я знаю только, что некоторые из них добавляют правила iptables, и я получаю эту ошибку, когда вызываю корневой скрипт.

iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.

Моя проблема в том, что я не могу найти, какой скрипт выводит эти ошибки. Есть ли способ или инструмент, чтобы узнать это?

Вы можете отслеживать выполнение ряда скриптов, используя bash -x

bash -x /path/to/your/script

Из этого вы можете выяснить, какие скрипты вызываются. Вы можете принудительно прервать выполнение сценария с помощью -e переключатель

bash -e -x /path/to/your/script

что может избавить вас от необходимости продираться через много выходных

Вы можете просто перенаправить stdout и sterr исполняемого скрипта в файл. Каждый вывод скрипта можно направить в отдельный файл. В этом случае вы можете просмотреть эти файлы и проверить, какой сценарий вернул ошибку.

Чтобы перенаправить вывод, вы можете использовать:

/path/to/script > /path/to/logfile.log

Чтобы перенаправить stdout и stderr, вы можете использовать:

/path/to/script > /path/to/logfile.log 2>&1

Вы можете заменить > с участием >> чтобы каждый раз добавлять в файл вместо его усечения.