Замедление удаления может произойти из-за того, что MSI-un-installer не может удалить файлы под %windir%winsxs'. Однако вручную не удаляйте вещи из %windir %\WinSxS. Одно решение могло бы удалять все Платформы.NET и все связанные с SQL приложения, возможно моясь с утилитой очистки установщика Windows. Затем переустанавливая Платформы.NET и наконец переустанавливая SQL Server.
Почему xargs
? Мне пришлось поискать его в спецификации POSIX, чтобы напомнить, что по умолчанию используется echo
, но я редко вижу, чтобы он использовался таким образом. На странице руководства Gnu об этом даже не упоминается.
44 CURDUPLEX=`ethtool $IFACE|grep "Duplex" ...`
45 CURSPEED=`ethtool $IFACE|grep "Speed" ...`
Двойной вызов ethtool
ставит под сомнение производительность Nagios.
Попробуйте что-нибудь вроде:
toolsays=$( ethttool $IFACE )
CURDUPLEX=$( echo "$toolsays" | grep Duplex ... )
CURSPEED=$( echo "$toolsays" | grep Speed ... )
Затем исходный сценарий сокращает последние четыре символов от скорости, но в дальнейшем код все равно будет принимать "Мб / с". Сделайте это предположение явным, чтобы сценарий завершился ошибкой при обнаружении хоста, на котором ethtool не сообщает скорость в Мб / с.
Вы можете пойти дальше и заменить две функции конвейера, например:
function duplex_state { typeset toolsaid=$1 s=
: ${toolsaid:?}
s=${toolsaid##*Duplex: }
echo ${s%%$'\n'*}
}
function speed_value { typeset toolsaid=$1 s=
: ${toolsaid:?}
s=${toolsaid##*Speed: }
echo ${s%%Mb/s*}
}
А вот как вы их называете:
Поскольку вы пишете для bash, вам действительно следует использовать [[, а не [, для тестов. О, и ИСПОЛЬЗУЙТЕ БОЛЬШЕ ЦИТАТОВ!
Вот несколько руководств и статей часто задаваемых вопросов, чтобы вы начали улучшать скрипт: