Introdução
Neste projeto, você aprenderá a criar um script que pode verificar se um programa está sendo executado em uma porta especificada e imprimir o caminho completo do programa ou "OK" se nenhum programa estiver sendo executado.
👀 Pré-visualização
## Exemplo
$ cd /home/labex/project
$ sh get.sh 3000
/usr/lib/code-server/lib/node
$ sh get.sh 43000
OK
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar um script Zsh
- Como usar o comando
lsofpara verificar se uma porta está em uso - Como usar o comando
pspara obter o caminho completo de um programa em execução
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Escrever um script que pode identificar o programa em execução em uma porta especificada
- Solucionar problemas relacionados a conflitos de porta em seu ambiente de desenvolvimento
- Automatizar o processo de verificação de programas em execução em portas específicas
Criar o Script get.sh
Nesta etapa, você criará o script get.sh que verificará se um programa está sendo executado em uma porta especificada.
Abra um editor de texto e crie um novo arquivo chamado
get.shno diretório/home/labex/project.Adicione o seguinte código para verificar se um número de porta foi fornecido como um argumento:
## Check if the port number is provided as an argument if [ -z "$1" ]; then echo "Please provide a port number." exit 1 fiEste código verifica se o script foi chamado com um número de porta como argumento. Caso contrário, ele imprime uma mensagem de erro e sai do script.
Adicione o seguinte código para obter o número da porta:
## Get the port number port=$1Este código armazena o número da porta fornecido na variável
port.Salve o arquivo
get.sh.
Verificar se um Programa está Rodando na Porta Especificada
Nesta etapa, você adicionará o código para verificar se um programa está sendo executado na porta especificada.
Adicione o seguinte código ao script
get.sh:## Check if the port is in use process=$(lsof -i :$port -sTCP:LISTEN -Fp | sed 's/^p//')Este código usa o comando
lsofpara verificar se um processo está escutando na porta especificada. A saída é armazenada na variávelprocess.Adicione o seguinte código para verificar se um programa está sendo executado:
## Check if a program is running if [ -z "$process" ]; then echo "OK" else ## Get the full path of the program path=$(ps -p $process -o args=) echo "$path" | awk '{print $1}' fiEste código verifica se a variável
processestá vazia (ou seja, nenhum programa está sendo executado na porta especificada). Se estiver vazia, o script imprime "OK". Se um programa estiver sendo executado, o script usa o comandopspara obter o caminho completo do programa e o imprime.Salve o arquivo
get.sh.
Testar o Script get.sh
Nesta etapa, você testará o script get.sh para garantir que ele funcione conforme o esperado.
Abra um terminal e navegue até o diretório
/home/labex/project.Execute o script
get.shcom um número de porta como argumento:$ sh get.sh 3000 /usr/lib/code-server/lib/nodeIsso deve exibir o caminho completo do programa em execução na porta 3000.
Execute o script
get.shcom um número de porta que não está em uso:$ sh get.sh 43000 OKIsso deve exibir "OK" pois nenhum programa está sendo executado na porta 43000.
Se o script funcionar conforme o esperado, você concluiu o projeto.
Parabéns! Você criou um script que pode verificar se um programa está sendo executado em uma porta especificada e imprimir o caminho completo do programa ou "OK" se nenhum programa estiver sendo executado.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



