Mudanças entre as edições de "Gerência de Redes (diário 2012-1)"
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..." | ||
− | # | + | # Variáveis globais |
− | + | TMP="/tmp/.saida" | |
+ | |||
+ | enter() | ||
{ | { | ||
− | |||
− | |||
echo "" | echo "" | ||
− | |||
echo -n "Tecle [ENTER] para avançar..." | echo -n "Tecle [ENTER] para avançar..." | ||
read enter | 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 | while true | ||
do | do | ||
− | |||
− | |||
clear | clear | ||
− | + | echo "Por favor, escolha uma opção:" | |
− | + | echo "1) Arquivos locais (IPC)." | |
− | echo " | + | echo "2) 'Sockets'." |
− | echo "1) | + | echo "n) Encerrar programa." |
− | echo "2) | + | echo -n "Digite a sua opção: " |
− | |||
− | |||
− | echo "" | ||
− | echo -n " | ||
read opcao | read opcao | ||
− | |||
− | |||
case ${opcao} in | case ${opcao} in | ||
"1") | "1") | ||
− | + | 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 " | + | echo "Escolha opção válida." |
− | |||
esac | esac | ||
− | |||
− | |||
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:
- Addon EPUBReader para Firefox.
- O sítio MagicScroll, isolado ou como aplicativo para Google Chrome.
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}