Мне нравится munin - достаточно просто установить (munin-node на каждом хосте и munin "мастер" на сервере сбора и построения графиков) и указать хостам я получил полную информацию об аппаратных датчиках, процессоре, дисках, памяти, прерываниях и многом другом. У него есть веб-интерфейс для просмотра, но, насколько я знаю, нет для настройки.
Cacti — хорошо зарекомендовавший себя инструмент мониторинга с полным веб-интерфейсом для настройки и управления. Хорошо справляется с ping и snmp для сетевого управления хостами; Я не нашел, что так легко получить информацию, которую вы запрашиваете.
Если вы хотите провести полную оценку, Nagios — еще один широко используемый бесплатный пакет, но у меня нет информации о нем.
Se llama comando compuesto y la sintaxis es
{ compound-list; }
(este es un ejemplo de un comando compuesto, otras cosas como for
bucles, etc. también son comandos compuestos)
Por ejemplo:
{
echo 'hello'
echo 'world'
}
El ;
solo es necesario si no hay una nueva línea antes del final}
:
{ echo 'hello'; echo 'world'; }
Los comandos en la construcción {...; }
se ejecutan en el entorno actual , al igual que para una función.
Más información sobre esto está disponible en la descripción del estándar POSIX de comandos compuestos .
No hay razón (o posibilidad )de nombrar estas secciones ya que nombrar una sección así es más o menos equivalente a crear una función de shell de todos modos. Además, nombrar un comando compuesto solo sería necesario si se va a consultar más adelante, que es para lo que se usan las funciones.
Obviamente se pueden utilizar comentarios:
# my hello world thing
{
echo 'hello'; echo 'world'
}
De manera similar, se puede tener una subcapa con
(
echo 'hello'
echo 'world'
)
Esto se ejecuta en un entorno secundario del shell actual, y los cambios en las variables, etc. no se reflejarán en el shell actual.
La sintaxis general es
( compound-list )
Aquí, no hay necesidad de un final ;
antes de )
.
Como curiosidad, las funciones de shell pueden usar (...)
en lugar de {...;}
para ejecutar su código en un entorno local:
helloworld () (
echo 'hello'
echo 'world'
)
Esto puede ser útil para saber si se está escribiendo una función en un lenguaje sh
que no admite variables locales(local
o typeset
enbash
)y que no necesita modificar el entorno del script.
¿Son suficientes los comentarios?
Puede usarlos de la siguiente manera para reagrupar comandos y proporcionar un nombre a esos grupos, y nada le prohíbe usar sangría:
#context1
echo "I'm in context1"
#end of context1
#context2
echo "I'm in context2"
#end of context2
También podría reagrupar los comandos con {...}
, lo que no tendría ningún otro efecto en este contexto AFAIK:
#context1
{
echo "I'm in context1"
}
#end of context1
{ #context2
echo "I'm in context2"
} #end of context2
Si desea además asociar estos contextos con un ámbito local, puede usar subcapas:
#context1
(
context="context1"
echo "I'm in $context"
)
#end of context1
( #context2
echo "I'm in $context" #context is undefined there
context=context2
echo "I'm in $context"
) #end of context2