Pular para o conteúdo

Personalize seu shell na entrada de seu logon

É interessante para alguns administradores de servidores Linux customizar o shell. A minha proposta é colocar algumas mensagens de saudação e outras mais importantes sobre o status do servidor isso logo após o logon no Shell Bash.
marcelo espindola de melo marceloespindola
Hits: 23.237 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Construindo os scripts

Para isso seja possível é necessário a manipulação do arquivo ".profile", ele está presente em todas as pastas "home" de todos os usuários do sistema, assim poderá ser representado da seguinte forma "~/.profile". Para facilitar esta personalização eu sugiro a criação de um diretório chamado /etc/configuracao_personalizada, nesta pasta ficarão armazenados os nossos scripts de mensagens. Assim dê o seguinte comando no shell:

# mkdir /etc/configuracao_personalizada

Logo após entre na pasta recém criada:

# cd /etc/configuracao_personalizada

Crie os seguintes arquivos:

# touch tamanhocache.txt
# touch saudacao


Após a criação, abra o segundo com o editor de texto de sua preferência (eu prefiro mcedit | para instalar no Debian basta "apt-get install mc"). A sintaxe ficaria assim:

# mcedit saudacao

Bom, não importando o editor, coloque estes comandos dentro do arquivo:

#!/bin/bash
clear #limpa a tela

#comandos para identificar o turno
hora=`date +%k`
if [ $hora -ge 6 ] && [ $hora -lt 12 ];then
TURNO="Bom Dia"; fi;
if [ $hora -ge 12 ] && [ $hora -lt 18 ];then
TURNO="Boa Tarde"; fi;
if [ $hora -ge 18 ] && [ $hora -lt 24 ];then
TURNO="Boa Noite!"; fi;
if [ $hora -ge 0 ] && [ $hora -lt 6 ];then
TURNO="Boa Noite!"; fi;

#cumprimentos
echo "$TURNO $USER Seja bem vindo a $HOSTNAME"
echo "Hoje são `date +%A` `date +%d` de `date +%B` de `date +%Y`"
echo "A hora atual é `date +%k:%M`"
echo "Número de usuários conectados neste momento: `who | wc -l`"
echo "O tamanho do cache está medindo..."
cat /etc/configuracao_personalizada/tamanhocache.txt 2> /dev/null

Esta será a nossa saudação, logo após a digitação deste comandos, coloque-o no status de executável com o comando:

# chmod +x saudação

Com o comando a seguir verifique se ele já está executável:

# ls -l
-rwxr-xr-x saudacao

Se a saída está semelhante a está que citei acima, então é hora de testar:

# ./saudacao

Boa Tarde root! seja bem vindo a proxy-server
Hoje são quinta 28 de junho de 2007
A hora atual é 17:18
Número de usuários conectados neste momento: 1
O tamanho do cache está medindo...

É claro, no arquivo tamanhocache.txt ainda não tem nenhum conteúdo, então vamos criar o script que calculará o tamanho do cache, isso é claro se você precisar calcular para mostrar o tamanho dele, porque alguns fazem montagem de partições na pasta onde o Squid armazena o cache, mas se não for o seu caso é interessante criar um script que calcula o tamanho do cache do Squid. Pronto! Agora crie o arquivo calc_tam_cache:

# touch calc_tam_cache

E coloque estas comandos neste arquivo:

#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
ARQTAMCACHE=/etc/configuracao_personalizada/tamanhocache.txt

du -hs /var/spool/squid > $ARQTAMCACHE
echo "A última atualização do tamanho do cache do Squid foi feita na data de" `date` >> $ARQTAMCACHE

Depois execute o comando:

# chmod +x calc_tam_cache

Agora teste ele:

# ./calc_tam_cache

Este comando não exibirá nenhuma saída na tela, a não ser que haja algum erro na execução. Para ver o conteúdo basta executar:

# cat tamanhocache.txt
250M    /var/spool/squid
A última atualização do tamanho do cache do Squid foi feita na data de Seg Jun 25 01:19:39 BRT 2007

Agora ver a saída do script completo:

# ./saudacao

Boa Tarde root! seja bem vindo a proxy-server
Hoje são quinta 28 de junho de 2007
A hora atual é 17:30
Número de usuários conectados neste momento: 1
O tamanho do cache está medindo...
250M /var/spool/squid
A última atualização do tamanho do cache do squid foi feita na data de Seg Jun 25 01:19:39 BRT 2007

Só que para que ele calcule automaticamente o tamanho do cache é necessário colocá-lo no agendamento do cron. Neste momento. para finalizar deixe o arquivo "/root/.profile" idêntico a seguir:

# ~/.profile: executed by Bourne-compatible login shells.

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

/etc/squid/configuracao_personalizada/saudacao
#declaração dos aliases (atalhos)
alias CACHE='cat /etc/squid/configuracao_personalizada/tamanhocache.txt'

mesg n

O alias é um atalho para outros comandos com opções pré-estabelecidas, e se você digitar no prompt o seguinte comando de atalho que foi criado no exemplo, será exibido o tamanho do o conteúdo do arquivo tamanhocache.txt.

Assim que o usuário root se logar em qualquer terminal (inclusive pelo ssh) o arquivo /root/.profile será executado, que por sua vez chamará em execução o arquivo /etc/squid/configuracao_personalizada/saudacao, exibindo os cumprimentos e depois criará o atalho CACHE.

Logo após foi feito o logon ficará será apresentado assim:



Uma outra dica interessante é acrescentar um script que mantenha o computador conectado a internet. Eis o link para ele:
Baixe ele, coloque-o na pasta /etc/configuracao_personalizada e acrescente a linha no arquivo /root/.profile chamando este script. O script mantém o servidor conectado a internet pelo rp-pppoe. O script verifica a conectividade com a internet através do comando pppoe-status, depois a condição verifica se o comando anterior foi executado com êxito. Caso seja positivo, ele executará apenas a mensagem e mostrará o ip da interface ppp0. Se não retornar positivamente, o script tentará conectar a internet.

Bom agora fica a dica! E cada um que quiser modificar e adaptá-lo às suas necessidades, fique a vontade.

OBS.: É interessante fazer isto no computador do chefe :-) :-) :-) hehe!

Uma sugestão é deixar como esta tela:



   1. Construindo os scripts

Script de firewall completíssimo

Introduzindo um pouco mais a fundo o shell script

Explorando a entrada de dados com READ em Bash Shell

Debugando shell scripts

Introdução ao Fortran (parte 1)

AWK - Manipulação de arquivos de texto

#1 Comentário enviado por marcossilva em 14/07/2007 - 15:39h
Bem interessante o a sua dica.. valews!!
#2 Comentário enviado por balani em 15/07/2007 - 01:34h
muito legal, parabens.
#3 Comentário enviado por exercitobr em 15/07/2007 - 20:17h
Já coloquei em prática, nota 10!
#4 Comentário enviado por marceloespindola em 15/07/2007 - 23:20h
Pessoal eu tenho mais algum material interessante nos seguintes endereços:
http://marcelolinux.blogspot.com/2007/07/tenha-seu-prprio-velocmetro-em-flash.html

é um ótimo velocímetro construido em flash funciona em qualquer sistema operacional e navegador de uma olhada lá, meu próximo artigo já está quase pronto, mas se vocês quiserem ele já está disponível no seguinte endereço:
http://marcelolinux.blogspot.com/2007/07/meu-primeiro-artigo-do-vivaolinux.html é um script de firewall iptables com muitas regras e possui uma bastante linguagem clara. Qualquer outra novidade será lançada primeiro lá no meu blog antes de ser publicada aqui no vol! ok?
#5 Comentário enviado por removido em 16/07/2007 - 03:21h
Gostei!
#6 Comentário enviado por aprendiz_ce em 16/07/2007 - 09:54h
Já foi para os meus favoritos!

Parabéns pelo artigo.
#7 Comentário enviado por kledantas em 16/07/2007 - 15:17h
Muito Bom..!!
#8 Comentário enviado por cytron em 20/09/2007 - 23:15h
Gostei do velocímetro, é o melhor que já ví na internet, rápido e preciso, vou alterar ele pra ter um botão de disparo, pois o usuário é pego de surpresa ao abrir a página e ele já está medindo, o usuário sempre gosta de disparar, pois ele pode se preparar pra isso.
#9 Comentário enviado por aronaxx em 11/12/2007 - 12:36h
Muito bom artigo!

Mas vai uma dica para quem usa o Kurumin
Se você não achar o arquivo profile em root
tente o arquivo profile que fica justamente no etc
adicione na ultima linha para não haver erros
sh /(E AONDE FICA O ARQUIVO SAUDACAO)
ai toda vez que você abrir o terminal ele vai fazer
a saudação!!!!
#10 Comentário enviado por rodriggog em 24/07/2008 - 11:26h
Parabéns pelo arquivo, para eu que sou iniciante, ajudou bastante a clarear as idéias...
#11 Comentário enviado por carlosdias98 em 13/09/2008 - 11:27h
Muito 10
#12 Comentário enviado por Cadelão em 05/02/2010 - 16:57h
Muito bom, irmão!
#13 Comentário enviado por m0rdorkiller em 24/03/2015 - 17:41h
Infelizmente aqui não deu certo, uso o Linux Mint, a mensagem que deu no terminal foi:
# /root/.profile
bash: /root/.profile: Permissão negada

Sendo que estou como root no terminal :/
nem alterando a pasta para
# /etc/.profile
bash: /etc/.profile: Arquivo ou diretório não encontrado

se alguem tiver alguma solução agradeço!

Contribuir com comentário

Entre na sua conta para comentar.