Estou procurando uma ferramenta de linha de comando que verifique a sintaxe do arquivo de configuração tcp_wrapper para garantir que os nomes dos daemon estejam configurados corretamente e coisas assim, verifique se há erros de ortografia ou sintaxe etc.
Timothy Pulliam's questions
Eu tenho um servidor linux (RHEL 7) em uma rede e o gateway padrão está configurado incorretamente. Como posso descobrir qual deve ser o gateway padrão, sem perguntar a um administrador de rede?
Eu tenho um servidor com uma tonelada de processos zumbis. Quase mil. Se possível, gostaria de colher esses processos porque não parece que o pai (um pai está causando todos os 1.000 zumbis) vai chamar a função de espera. Vejo que o bash tem uma função de espera integrada, mas quando a uso para tentar colher um dos zumbis, recebo o seguinte erro.
# wait 17517
bash: wait: pid 17517 is not a child of this shell
Eu sou root, mas isso não parece fazer diferença. tenho algumas perguntas
- Posso colher um processo zumbi se não for filho do meu shell?
- Se não, há algo que eu possa fazer? Não tenho certeza se devo matar o pai
- Eu deveria estar preocupado? Parece que o pai tem um vazamento de recursos e não está coletando lixo ou qualquer outra coisa.
Preciso do gcc mais recente? Posso usar os binários gcc incluídos na minha distribuição? Isso importa?
Estou tentando aprender como usar getopts para que eu possa ter scripts com entrada analisada (embora eu ache que getopts poderia ser melhor). Estou tentando apenas escrever um script simples para retornar as porcentagens de uso da partição. O problema é que uma das minhas funções bash não parece gostar que eu faça referência $1
como uma variável dentro da função. A razão pela qual faço referência $1
é porque a get_percent
função pode receber um ponto de montagem como um argumento opcional para exibir em vez de todos os pontos de montagem.
O roteiro
#!/usr/bin/bash
set -e
set -u
set -o pipefail
get_percent(){
if [ -n "$1" ]
then
df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }'
else
df -h | tail -n +2 | awk '{ print $1,"\t",$5 }'
fi
}
usage(){
echo "script usage: $(basename $0) [-h] [-p] [-m mount_point]" >&2
}
# If the user doesn't supply any arguments, we run the script as normal
if [ $# -eq 0 ];
then
get_percent
exit 0
fi
# ...
A saída
$ bash thing.sh
thing.sh: line 8: $1: unbound variable
$ bash -x thing.sh
+ set -e
+ set -u
+ set -o pipefail
+ '[' 0 -eq 0 ']'
+ get_percent
thing.sh: line 8: $1: unbound variable
Eu quero fazer algo como o seguinte em um script
$ ssh host1 "$(command)"
No entanto, os subprocessos são executados antes que a conexão SSH seja estabelecida porque se eu fizer o seguinte
$ ssh host1 "$(hostname)"
o nome do host da máquina local é retornado. Quero poder usar subprocessos porque isso facilitaria outras coisas que estou tentando fazer.
Editar: Um exemplo mais completo, conforme solicitado. Eu tenho uma lista de nomes de host aos quais preciso adicionar entradas crontab. Cada sistema pertence a um usuário específico e, portanto, deve ter a entrada adicionada em seu nome. O proprietário do sistema está contido no nome do host do sistema, portanto, analisando o nome do host, posso acessar su
o usuário apropriado e editar seu crontab de acordo. Por exemplo algo assim:
for host in $(cat /tmp/hosts); do
echo -e "----------------------------"
echo -e "# SSH to host $host"
echo -e "----------------------------"
ssh $host "su - $(hostname | cut -b-5-); crontab -e";
done
Eu sei que as informações do superbloco EXT podem ser encontradas usando dumpe2fs -h /dev/sda1
, mas qual é o equivalente XFS disso? O melhor que encontrei até agora é xfs_info /dev/sda1
, mas isso não parece produzir tanta informação quanto pode ser obtida com um sistema de arquivos EXT.
Quero poder ter um roteador decente que possa ser altamente configurado e lidar com uma quantidade razoável de tráfego enquanto é seguro. Antes de gastar dinheiro em algum hardware/software de roteamento dedicado, é possível que o Linux possa ser usado para isso? Existem distros especializadas nisso?
Eu executei o seguinte comando usando ss.
# ss -ua | grep radius
UNCONN 0 0 :::radius :::*
Minha pergunta é: com qual interface/IP :::radius
corresponde? Com qual interface :::*
corresponde e onde estão as informações da porta de origem? O que os asteriscos significam na saída de ss? Eles significam o mesmo que 0.0.0.0?