Como inserir notificações na área de trabalho do Ubuntu

notificação da área de trabalho do Ubuntu
Clique, para abrir a imagem em nova janela em tamanho maior.

Introdução

Há vários possíveis usos para este recurso. Particularmente, gosto dele para notificar sobre o fim da execução de uma determinada tarefa.
Sabe quando você abriu um terminal iniciou um backup ou um download com o wget e vai jogar um pouco de tempo fora nas redes sociais… este aplicativo ajuda a lembrar que vocẽ precisa voltar ao trabalho.

Instalação

Trata-se de um aplicativo padrão do Ubuntu e, portanto, não precisa ser instalado. Mas, como temos outras versões e sabores de Ubuntu e Debian disponíveis, Pode ser que ele não esteja à mão.
Neste caso, sua instalação é pode ser feita rapidamente.
Abra um terminal e rode o seguinte comando:

sudo apt-get install libnotify-bin

trata-se de um pacote muito pequeno (menos de 8kb) e deve levar poucos segundos para baixar e instalar.

Como enviar uma simples notificação para a área de trabalho do usuário

O programa notify-send pode ser usado para enviar uma simples e rápida notificação, conforme o exemplo abaixo:

notify-send 'Título da minha notificação' 'Texto da minha pequena notificação'

Seleção_022

Meio sem graça, cara…

E se adicionássemos um ícone?! Veja como é fácil:

notify-send -u critical -i "notification-message-IM" 'Execução terminada!!' 'O backup foi realizado. Verifique o terminal, parceiro!'

ícone do messenger na notificação da área de trabalho
Clique na imagem para abrir em uma nova janela

Note que inserimos dois parâmetros novos ao comando:

  • -u — que indica o nível de urgência da notificação. Em ordem de urgência:
    • low
    • normal
    • critical
  • -i — que indica o ícone padrão a ser utilizado

Legal!! Eu quero usar meus próprios ícones!

Veja como inserir os seus próprios ícones à mensagem:

notify-send -i /usr/share/icons/ubuntu-mono-dark/24x24/apps/shutter-panel.png 'Este parece o ícone da câmera...'

ícone da câmera na mensagem.
Clique para ampliar em nova janela

Basta indicar o caminho e o nome para o notify-send encontrar e exibir o ícone desejado.

4 comandos fatais e proibidos pro Linux.

Há comandos que são extremamente danosos pro seu sistema operacional Linux, se executados inadvertidamente.
Felizmente, nenhum deles pode ser executado sem privilégios administrativos — mas você deve ser cuidadoso, mesmo assim.
Captura_de_tela-Breaking.Bad.S01E04.avi-1Se o seu objetivo é o aprendizado, o ambiente mais seguro para testar estes e muitos outros comandos é o virtual. Aprenda a criar uma máquina virtual e vá brincar com segurança dentro dela.

O comando que apaga tudo

A função do comando rm é remover arquivos — e ele pode remover diretórios inteiros também, sem pedir qualquer confirmação.
Ao executar o comando rm -rfv /, com privilégios de root todos os arquivos e diretórios do seu sistema serão eliminados.
Veja o que ele faz:

  • r — indica a recursividade. Todos os arquivos do diretório atual e seus subdiretórios sofrerão a ação do comando;
  • f — indica a ‘forçabilidade’. Todos os arquivos serão forçosamente removidos, independente de suas permissões;
  • v — liga a ‘verbosidade’. Torna tudo mais lindo ao exibir os arquivos à medida em que são eliminados no seu terminal;
  • / — indica o local em que a operação ocorrerá. Neste caso, a raiz. É isto que torna o comando todo tão perigoso;

Se você executar a linha sem privilégios administrativos, só os arquivos nos quais você tem permissão de escrita serão afetados.

Como executar uma fork bomb

Esta é uma das formas de se fazer um ataque de negação de serviços, que consiste em, basicamente, saturar os recursos de um servidor ao ponto de torná-lo indisponível.
A fork bomb apresentada a seguir faz com que o Linux ou o Unix opere definindo uma função, chamada ‘:’ e que refira-se a si mesma duas vezes – em background e foreground:

: (){ : | : & };:

No Linux, o administrador pode prevenir este tipo de ataque com o comando ulimit que impõe restrições à quantidade de processos simultâneos por usuário.

Formatar uma partição

Qualquer instalação decente do Linux estará distribuída em várias partições. O comando:

mkfs.ext4 /dev/sdaX</code>

vai aplicar uma formatação completa à partição /dev/sdaX.
Formatar um disco completamente, desta forma, pode ser útil no caso de se estar repassando a máquina para uma outra pessoa.

Escrever diretamente no disco rígido

Ao enviar a saída de um comando diretamente pro endereço do dispositivo de disco rígido não é apenas desaconselhável. É uma ação muito perigosa e danosa pro sistema de arquivos, em sua máquina.
Pode ser feito da seguinte forma:

ls > /dev/sda

Há várias outras formas de se danificar um sistema Linux/Unix — e, na maior parte delas, é necessário ter privilégios especiais para ter sucesso.
Distribuições Linux voltadas para usuários com menor nível de conhecimento costumam vir com algumas configurações que previnem a maior parte dos acidentes.

Seja responsável! 😉

Use sync e sysctl para esvaziar a memória cache no Linux

Neste post, vou mostrar como usar algumas ferramentas de linha de comando para escoar o cache da memória RAM.
O objetivo deste post é dar aos iniciantes um pouco mais de conhecimento sobre gerenciamento de memória no Linux e alguns comandos para gestão do sistema de cache.

cache memória RAM
Clique, para mais detalhes.

Em que casos é necessário limpar a memória cache do meu sistema?

Em duas palavras: quase nunca.
O sistema já tem um excelente gerenciamento de memória e a tendência é sempre aproveitar toda a quantidade de memória disponível no seu computador ou smartphone, caso você esteja usando o Android.
A função do caching é tornar o sistema mais veloz, na medida em que ele mantém sempre à mão as informações mais requisitadas. O Linux é extremamente eficiente nisto e não há por que “se meter” neste processo e fazer o trabalho “manualmente”.
Em alguns casos, contudo, o processo de escoamento do cache pode ser útil.
Ao transferir arquivos muito volumosos (vídeos, por exemplo) do seu HD para um pendrive ou um HD externo, conectado na entrada USB, o Linux usa muito o sistema de caching, como sistema intermediário de armazenamento.
O motivo de o Linux usar intensivamente o caching é que o seu dispositivo interno transfere os dados muito mais rápido do que os dispositivos externos conseguem absorver.
Este é um dos motivos para você não conseguir desmontar/ejetar um pendrive ou qualquer outro dispositivo conectado — por que ele ainda não gravou todos os dados, ainda armazenados no cache.

Como esvaziar o cache

Os comandos sysctl e o sync podem ser usados em conjunto ou separados para realizar a tarefa.
Vamos verificar, antes, se o cache está sendo usado. Para isto, abra um terminal e digite o seguinte comando:

free -m
             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       2,9G       723M       172M       3,5M       1,5G
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G         0B        15G

Observe a última coluna em cache.
No exemplo acima, há quase 1,5 Gb da memória cache em uso.
Para limpar o cache será necessário executar comandos com privilégios administrativos.
Veja como:

sudo sync
sudo sysctl -w vm.drop_caches=3
sudo sysctl -w vm.drop_caches=0

alternativamente, você pode executar os 3 comandos, em uma linha só:

sudo sync && sudo sysctl -w vm.drop_caches=3 && sudo sysctl -w vm.drop_caches=0

Saiba o que a linha de comando acima faz:

  • sync — este comando, assegura que os dados pendentes no sistema de cache sejam escoados pro disco.
  • sysctl -w vm.drop_caches = 3 — limpa o cache na memória
  • sysctl -w vm.drop_caches = 0 — reinicia o drop cache.

Veja o resultado:

             total       usado      livre    compart.  buffers     em cache
Mem:          3,6G       1,7G       1,8G       124M         0B       351M
-/+ buffers/cache:       1,4G       2,2G
Swap:          15G       156K        15G

Observe como o uso do cache foi drasticamente reduzido.
Esta linha de comando pode ser usada para limpar o cache armazenado na memória RAM.

Método alternativo

O método anterior funciona bem no Ubuntu.
Mas pode não dar resultado em outras distros. Neste caso, recomendo usar o comando sync das seguintes formas:
Para liberar pagecache, dentries e inodes, use o sync desta maneira:

sudo sync; sudo echo 3 > /proc/sys/vm/drop_caches

Para liberar dentries e inodes use-o assim:

sudo sync; sudo echo 2 > /proc/sys/vm/drop_caches

Para liberar apenas o pagecache, faça assim:

sudo sync; sudo echo 1 > /proc/sys/vm/drop_caches

Se você conhece outras maneiras para realizar o serviço, seja bem vindo para comentar sobre isso.
Não esqueça de compartilhar o post! 😉

GLOSSÁRIO

  • drop cache — versões superiores à 2.6.15 do kernel do Linux, dispõem de um mecanismo que faz o kernel eliminar o page cache e/ou o cache de inodes e o cache dentry — o que pode auxiliar significativamente na liberação de memória no sistema.
    Para fazer uso manual do /proc/sys/vm/drop_caches, basta gravar um número nele — o que pode ser feito com o comando echo.
  • page cache — também chamado de disk cache é uma cópia de parte dos dados do disco, mantida na memória RAM, pelo sistema operacional.
    O objetivo é dar acesso mais rápido a estes dados ao usuário.
  • dentries — A palavra “dentry” é uma abreviatura para “directory entry” (entrada de diretório).
    Uma dentry é nada além de um componente específico no caminho para um arquivo a partir da raiz do sistema. Sua função é prover acesso a arquivos e diretórios. Mohan, I. Chandra (2013)
  • inodes — “inode” é abreviatura para “index node“. Em um sistema de arquivos Unix, um inode é uma estrutura de dados usada para representar um objeto do sistema de arquivos – qual seja um arquivo, um diretório etc.
    Cada inode armazena os atributos e localizações dos blocos do disco referentes ao sistema de arquivos.
  • buffers — memória usada temporariamente para armazenar dados em tráfego no sistema.

Se quiser ler mais sobre o assunto:
O sistema de arquivos /proc.
http://www.commandlinefu.com/commands/view/1026/empty-the-linux-buffer-cache
http://duopetalflower.blogspot.com.br/2009/09/clearing-cache-memory-in-linux-using.html

Como montar um sistema de arquivos FTP remoto com o curlftps

É possível montar nativamente um sistema de arquivos FTP remoto, com o uso de um gerenciador de arquivos gráfico, presente em qualquer distribuição Linux — todos eles permitem acessar servidores remotos, através de diversos protocolos.
Se você precisa de mais recursos de conectividade, vou descrever, neste post, uma solução mais flexível e completa para a realização da tarefa — para quem não tem medo digitar (ou copiar e colar) alguns comandos no console.

Como instalar o curlftps no Debian ou Ubuntu

Vamos precisar instalar pelo menos um pacote de softwares, o curlftps – sistema de arquivos para acessar hosts FTP baseado em FUSE e cURL.
Comece abrindo um terminal (Ctrl+Alt+T, no Ubuntu). Agora, use o apt, para instalar:

sudo apt-get install curlftpfs

Após a instalação, vamos criar um diretório local dentro do qual vamos montar o diretório remoto via FTP:

sudo mkdir /mnt/meu_ftp

Para executar o curlftps, você precisa saber 3 coisas:

  • endereço do Servidor FTP
  • Nome de usuário;
  • Sua senha;

Substitua, no comando que segue, os valores pelos que se adequam ao seu caso:

sudo curlftpfs endereco_ftp.com /mnt/meu_ftp/ -o user=meuNomeDeUsuario:MinhaSenha -o allow_other

A opção -o allow_other serve para permitir que outros usuários na rede também tenham acesso a este diretório. Se isto não te interessa, basta remover do comando.
A esta altura você já pode acessar o seu diretório:

ls /mnt/meu_ftp/

Quer que este diretório seja montado já na inicialização do sistema ou da sessão?

Superfácil.
Abra e edite o arquivo /etc/fstab:

sudo editor /etc/fstab

Agora vá até a última linha do arquivo aberto no seu editor e insira o seguinte comando:

curlftpfs#ftp://username:password@ftp.myhost.com/ /meu_ftp fuse defaults 0 0

Captura de tela - 13-06-2013 - 20:23:31
Não esqueça de substituir

  • username, pelo seu nome de usuário no servidor;
  • password, pela senha correspondente ao usuário no servidor;
  • ftp.myhost.com, pelo endereço do seu servidor;
  • e meu_ftp pelo diretório local em que você pretende montar o diretório remoto.

Para montar tudo agora, execute o comando:

sudo mount -a

Para desmontar o diretório, a qualquer momento, use o comando:

sudo umount /mnt/meu_ftp

LEIA MAIS!

Além dos artigos sugeridos, abaixo, você pode realizar uma busca neste site, por qualquer assunto — na caixa de busca, no canto superior direito do site.

Como instalar um servidor FTP no Linux Debian (vale pro Ubuntu também)

Instalar um servidor FTP é tão simples que eu não precisaria de mais de um parágrafo para tratar deste assunto objetivamente.
Mas este artigo vai falar além da instalação. Vou abordar alguns aspectos que surgem após a instalação e a configuração do FTP para que ele te sirva melhor.
As dicas aqui são voltadas para quem tem um sistema Linux baseado na distro Debian (é o caso do Ubuntu). Mas podem ser facilmente adaptadas a outras distros.

Como instalar o FTP

O servidor FTP do qual vamos tratar aqui é o popular proFTPd. Sua instalação pode ser feita em uma única linha de comando:

  • Abra uma terminal (Ctrl + Alt + T)
  • Dê o seguinte comando:sudo apt-get install proftpd

Durante o processo de instalação, o Debconf vai perguntar se você deseja usar o inetd ou o autônomo (versão em português). A última costuma ser a mais indicada para a maioria das pessoas – além do fato de que usar o inetd vai pedir outras configurações…

2013-04-22-1366655411_1024x600

Como configurar proftpd

Feita a instalação, alguns ajustes podem ser benvindos no arquivo de configuração. No Debian ele costuma ser /etc/proftpd/proftpd.conf. No Ubuntu ele é /etc/proftpd.conf.
Uma dica rápida: com o comando man proftpd você pode descobrir onde ficam os arquivos de configurações deste ou outro aplicativo, dentro da seção FILES.
apague-me-Sem título

O diretório home do usuário FTP

Para que cada usuário tenha acesso apenas aos seus próprios arquivos, descomente a linha
DefaultRoot ~.

Como permitir acesso anônimo ao servidor FTP

Há uma seção dentro do proftpd.conf  que trata disto. Normalmente, basta descomentar as linhas desta seção. Veja como está no meu arquivo. Se for o caso, adapte para as suas necessidades:

<Anonymous ~ftp>
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp

# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp

RequireValidShell off

# Limit the maximum number of anonymous logins
MaxClients 10

# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message

# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
<Limit>
<Directory>
</Anonymous>

Com estas opções os seus usuários poderão acessar o seu servidor como anonymous e ftp. Não poderão fazer uploads, apagar ou alterar arquivos. O acesso, neste caso, é só para leitura.

Mensagem de boas vindas

A mensagem de boas vindas (welcome message) do seu servidor proFTPd pode ser alterado em /home/ftp/welcome.msg. Trata-se de um arquivo de texto simples que é exibido pros usuários assim que autenticam.

Por último…

… mas, nem por isto, menos importante. Para que as alterações feitas ao arquivo de configuração tenham efeito, é necessário reiniciar o servidor FTP:
sudo /etc/init.d/proftpd restart

Divirta-se e não se esqueça de compartilhar! 😀