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.

[ Hits: 23.016 ]

Por: marcelo espindola de melo em 14/07/2007 | Blog: https://marceloespindolaweb.blogspot.com.br/


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:



   

Páginas do artigo
   1. Construindo os scripts
Outros artigos deste autor

Script de firewall completíssimo

Leitura recomendada

Dialog em GTK

Debugando shell scripts

Programando em shell script (conceitos básicos)

Sed - Introdução

Bitwise - Escovando os bits

  
Comentários
[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