Mudanças entre as edições de "Gerência de Redes (diário 2012-1)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 10: Linha 10:
  
 
=Scripts=
 
=Scripts=
 +
 +
== Capítulo 1 ==
 +
* Item "Juntando as Peças..":
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
 
#!/bin/bash
 
#!/bin/bash
 +
#
 +
# 20120320 Ederson Torresini: uma proposta de solução do item "Juntando as Peças..."
  
# Função auxiliar: listar os arquivos especiais (named pipes e unix sockets)
+
# Variáveis globais
arquivosEspeciais()
+
TMP="/tmp/.saida"
 +
 
 +
enter()
 
{
 
{
echo "Arquivos do tipo 'named pipe'. Por favor, aguarde..."
 
find / -type p -ls 2> /dev/null | more
 
 
echo ""
 
echo ""
echo "Agora, os arquivos do tipo 'unix socket'. Mais uma vez, aguarde..."
 
 
echo -n "Tecle [ENTER] para avançar..."
 
echo -n "Tecle [ENTER] para avançar..."
 
read enter
 
read enter
find / -type s -ls 2> /dev/null | more
 
 
}
 
}
  
# Função principal: menu interativo cíclico
+
arquivosLocais()
 +
{
 +
echo ""
 +
echo "Arquivos do tipo 'named pipe'. Por favor, aguarde..."
 +
find / -type p -ls 2> /dev/null
 +
enter
 +
echo ""
 +
echo "Arquivos do tipo UNIX 'socket'. Por favor, aguarde..."
 +
find / -type s -ls 2> /dev/null
 +
enter
 +
}
 +
 
 +
sockets()
 +
{
 +
case ${1} in
 +
"1")
 +
lsof -n -P | grep TCP | grep LISTEN > ${TMP}
 +
lsof -n -P | grep UDP | grep LISTEN >> ${TMP}
 +
cat ${TMP} | sort
 +
enter
 +
;;
 +
"2"|"3")
 +
lsof -n -P | grep TCP | grep LISTEN > ${TMP}
 +
lsof -n -P | grep UDP | grep LISTEN >> ${TMP}
 +
cat ${TMP} | grep ${2} |sort
 +
enter
 +
;;
 +
esac
 +
}
 +
 
 +
cat /dev/null > ${TMP}
 +
chmod 600 ${TMP}
 +
if [ "$(id -u)" != "0" ]
 +
then
 +
echo "Rodando como usuário não privilegiado."
 +
echo "Os resultados poderão estar incompletos."
 +
enter
 +
fi
 
while true
 
while true
 
do
 
do
#
 
# Limpar a tela
 
 
clear
 
clear
#
+
echo "Por favor, escolha uma opção:"
# Listar as opções
+
echo "1) Arquivos locais (IPC)."
echo "Opções:"
+
echo "2) 'Sockets'."
echo "1) Listar arquivos especiais: 'named pipes' e 'unix sockets'."
+
echo "n) Encerrar programa."
echo "2) Sair do programa."
+
echo -n "Digite a sua opção: "
#
 
# Ler a opção do usuário
 
echo ""
 
echo -n "Escolha uma opção pelo seu número: "
 
 
read opcao
 
read opcao
#
 
# Executar a opção do usuário
 
 
case ${opcao} in
 
case ${opcao} in
 
"1")
 
"1")
arquivosEspeciais
+
arquivosLocais
 
;;
 
;;
 
"2")
 
"2")
 +
echo ""
 +
echo "Listar serviços por nome de processo, dono ou porta?"
 +
echo "1) Processo."
 +
echo "2) Dono."
 +
echo "3) Porta."
 +
echo -n "Digite a sua opção: "
 +
read opcao
 +
case ${opcao} in
 +
"2")
 +
echo ""
 +
echo -n "Digite o nome do usuário: "
 +
read subopcao
 +
;;
 +
"3")
 +
echo ""
 +
echo -n "Digite o número da porta: "
 +
read subopcao
 +
;;
 +
esac
 +
sockets ${opcao} ${subopcao}
 +
;;
 +
"n")
 
exit
 
exit
 
;;
 
;;
 
*)
 
*)
echo "Por favor, leia com atenção!"
+
echo "Escolha opção válida."
;;
 
 
esac
 
esac
echo -n "Tecle [ENTER] para avançar..."
 
read enter
 
 
done
 
done
 +
rm -f ${TMP}
 
</syntaxhighlight>
 
</syntaxhighlight>

Edição das 09h37min de 20 de março de 2012

O formato da apostila é EPUB, publicado semanalmente no repositório do professor. Ele está em produção usando o aplicativo Sigil.

Há diversos dispositivos para leitura desse formato. No Linux, o aplicativo calibre (para Ubuntu está disponível pelo seu repositório oficial) lê e converte para esse formato.

Diretamente na rede há as seguintes opções:

Método de Avaliação

Scripts

Capítulo 1

  • Item "Juntando as Peças..":
#!/bin/bash
#
# 20120320 Ederson Torresini: uma proposta de solução do item "Juntando as Peças..."

# Variáveis globais
TMP="/tmp/.saida"

enter()
{
	echo ""
	echo -n "Tecle [ENTER] para avançar..."
	read enter
}

arquivosLocais()
{
	echo ""
	echo "Arquivos do tipo 'named pipe'. Por favor, aguarde..."
	find / -type p -ls 2> /dev/null
	enter
	echo ""
	echo "Arquivos do tipo UNIX 'socket'. Por favor, aguarde..."
	find / -type s -ls 2> /dev/null
	enter
}

sockets()
{
	case ${1} in
		"1")
			lsof -n -P | grep TCP | grep LISTEN > ${TMP}
			lsof -n -P | grep UDP | grep LISTEN >> ${TMP}
			cat ${TMP} | sort
			enter
			;;
		"2"|"3")
			lsof -n -P | grep TCP | grep LISTEN > ${TMP}
			lsof -n -P | grep UDP | grep LISTEN >> ${TMP}
			cat ${TMP} | grep ${2} |sort
			enter
			;;
	esac
}

cat /dev/null > ${TMP}
chmod 600 ${TMP}
if [ "$(id -u)" != "0" ]
then
	echo "Rodando como usuário não privilegiado."
	echo "Os resultados poderão estar incompletos."
	enter
fi
while true
do
	clear
	echo "Por favor, escolha uma opção:"
	echo "1) Arquivos locais (IPC)."
	echo "2) 'Sockets'."
	echo "n) Encerrar programa."
	echo -n "Digite a sua opção: "
	read opcao
	case ${opcao} in
		"1")
			arquivosLocais
			;;
		"2")
			echo ""
			echo "Listar serviços por nome de processo, dono ou porta?"
			echo "1) Processo."
			echo "2) Dono."
			echo "3) Porta."
			echo -n "Digite a sua opção: "
			read opcao
			case ${opcao} in
				"2")
					echo ""
					echo -n "Digite o nome do usuário: "
					read subopcao
					;;
				"3")
					echo ""
					echo -n "Digite o número da porta: "
					read subopcao
					;;
			esac
			sockets ${opcao} ${subopcao}
			;;
		"n")
			exit
			;;
		*)
			echo "Escolha opção válida."
	esac
done
rm -f ${TMP}