Algumas VPS OpenVZ ao reiniciarem ficavam com permissões erradas (rw- --- ---, ou seja, 600) em alguns devices:
/dev/null
/dev/full
/dev/zero
/dev/random
/dev/urandom
A partir daqui [1] foi possível obter uma regra para o udev aplicar sobre estes devices e permitir que a cada arranque as permissões sejam as corretas.
Como neste caso o ficheiro não existe é necessário criá-lo e adicionar o conteúdo abaixo.
# nano /etc/udev/rules.d/50-fix-permission.rules
SUBSYSTEM=="mem", KERNEL=="null|zero|full|random|urandom", MODE="0666"
Guardar com CTRL + X e Y
[1] - https://bbs.archlinux.org/viewtopic.php?pid=1123209#p1123209
terça-feira, 27 de outubro de 2015
sábado, 11 de julho de 2015
VPN: Criar chave para cliente android e configuração
0. Introdução
As vantagens na utilização de um servidor VPN têm duas vertentes essenciais:- Aumentar a segurança na utilização de redes inseguras (redes wireless avulsas ou sem encriptação)
- Ligar a uma rede local remota
O segundo aspeto permite que o nosso dispositivo esteja "fisicamente" ligado à rede remota. Muito útil no caso de aplicações de ISP que apenas funcionam dentro da rede local de cada cliente (por exemplo, aplicações para visualização da emissão de TV e afins).
Desta forma, com acesso à Internet e ativando a ligação VPN é possível navegar a partir de qualquer lugar como se estivéssemos na rede local do servidor VPN e, assim, utilizar as referidas aplicações como se estivéssemos fisicamente na rede local.
1. Requisitos
1. Acesso a um servidor VPN.2. Instalação da aplicação OpenVPN Connect no dispositivo cliente, designado de tabuleta
O teste foi feito com um sistema Android 4.x, mas existem diversas instruções para outros dispositivos ([1] ver Step 5 - Installing the Client Profile).
Para equipamentos Android de versões 2.x é necessário acesso root ao equipamento [2].
2. Criação de Certificados, Chaves e afins
Para cada dispositivo cliente é necessário criar um conjunto de ficheiros que permitem encriptar a ligação de forma muito segura.Assim, acedendo ao servidor VPN, basta utilizar:
cd /etc/openvpn/easy-rsa/
./build-key tabuleta
Serão perguntadas diversas questões que para utilização normal podem ser confirmadas todas com ENTER e no final com dois 'y' para confirmação.
Este processo cria vários ficheiros na pasta /etc/openvpn/easy-rsa/keys, nomeadamente: tabuleta.crt e tabuleta.key.
3. Criação de um Perfil para o OpenVPN Connect
A criação de um perfil permite combinar num único ficheiro todos elementos necessários para a configuração de um cliente VPN.1. Copiar o exemplo base de perfil:
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/easy-rsa/keys/tabuleta.ovpn
2. Editar o perfil tablet.ovpn:
nano /etc/openvpn/easy-rsa/keys/tabuleta.ovpn
3. Alterar a linha remote my-server-1 1194 para ter o domínio do servidor, por exemplo qualquercoisa.no-ip.org:
remote qualquercoisa.no-ip.org 1194
4. Se o cliente não é Windows, devem descomentar-se as linhas:
user nobody
group nogroup
5. Deve comentar-se depois as linhas que fazem referência aos certificados e chaves:
#ca ca.crt
#cert client.crt
#key client.key
6. De seguida é possível acrescentar e copiar/colar de forma a que o ficheiro tabuleta.ovpn fique:
(conteúdo existente)
(colar conteúdo do ca.crt)
</ca>
(colar conteúdo do tabuleta.crt)
</cert>
(colar conteúdo do tabuleta.key)
</key>
Para auxiliar a este processo criei um bash script que está disponível aqui [3].
7. Copiar o perfil tabuleta.ovpn de forma segura para o cliente.
4. Configuração do OpenVPN Connect no cliente
Para que um dispositivo se possa ligar ao servidor VPN necessita ter um cliente instalado e configurado. Neste caso o dispositivo tabuleta é um equipamento Android 4.x.1. Instalar a aplicação OpenPVN Connect [4]
2. Abrir o OpenVPN Connect e importar o perfil copiado anteriormente com a opção:
Import > Import Profile from SD card
3. Selecionar o ficheiro tabuleta.ovpn e posteriormente deverá aparecer o perfil na aplicação
4. Quando estiver com acesso à Internet é possível fazer Connect e todo o tráfego passará pelo servidor VPN.
Referências
[1] - Página com muita informação sobre criação e configuração do servidor e dos clienteshttps://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04
[2] - Instruções para instalação no GingerBread 2.3
https://my.hostvpn.com/knowledgebase/15/OpenVPN-for-Android-rooted-Gingerbread-23x.html
http://librehacks.blogspot.pt/2015/07/vpn-script-para-criacao-de-perfis.html
[4] - Aplicação OpenVPN Connect
https://play.google.com/store/apps/details?id=net.openvpn.openvpn
VPN: Script para a criação de perfis OpenVPN
O script seguinte permite criar um perfil para um cliente OpenVPN após serem criados os seus certificados e chaves (./build-key tabuleta).
Deve ser guardado em /etc/openvpn/easy-rsa/keys/mergeKeys.sh
E deve ser invocado a partir dessa localização com o argumento do nome do cliente. Por exemplo:
./mergeKeys.sh tabuleta
Para criar tabuleta.ovpn, a partir de ca.crt, tabuleta.crt e tabuleta.key.
Deve copiar-se o perfil de exemplo OVPN para template.ovpn e configurá-lo de acordo com o servidor.
# Check for client name
echo -e "Checking for client name... "
if [ $# -eq 0 ]; then
echo -e "ERROR: No client name provided.\nAborting."
echo -e "\nYou have to supply the client name for the certificate. eg:\n$0 client1\n"
exit 1
else
echo -e "Using $1 to find certificates..."
fi
# Check for client.ovpn
if [ -f "$1.ovpn" ]; then
echo -e "WARNING: $1.ovpn already exist."
echo -e "\nAborting."
exit 1
fi
FILE=template.ovpn
echo -e "Checking for template profile $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE=ca.crt
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE="$1.crt"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE="$1.key"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
# All files exist
echo -e "All files exist.\n"
FILE=client.ovpn
echo "Creating $1.ovpn base file with $FILE..."
cp "$FILE" "$1.ovpn"
if [ ! -f "$1.ovpn" ]; then
echo -e "ERROR: $1.ovpn couldn't be created. Check permissions."
echo -e "\nAborting."
exit 1
fi
FILE=ca.crt
echo "Append $FILE to $1.ovpn..."
echo "<ca>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</ca>" >> "$1.ovpn"
FILE="$1.crt"
echo "Append $FILE to $1.ovpn..."
echo "<cert>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</cert>" >> "$1.ovpn"
FILE="$1.key"
echo "Append $FILE to $1.ovpn..."
echo "<key>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</key>" >> "$1.ovpn"
echo -e "Done.\n"
Deve ser guardado em /etc/openvpn/easy-rsa/keys/mergeKeys.sh
E deve ser invocado a partir dessa localização com o argumento do nome do cliente. Por exemplo:
./mergeKeys.sh tabuleta
Para criar tabuleta.ovpn, a partir de ca.crt, tabuleta.crt e tabuleta.key.
Deve copiar-se o perfil de exemplo OVPN para template.ovpn e configurá-lo de acordo com o servidor.
mergeKeys.sh
#!/bin/bash# Check for client name
echo -e "Checking for client name... "
if [ $# -eq 0 ]; then
echo -e "ERROR: No client name provided.\nAborting."
echo -e "\nYou have to supply the client name for the certificate. eg:\n$0 client1\n"
exit 1
else
echo -e "Using $1 to find certificates..."
fi
# Check for client.ovpn
if [ -f "$1.ovpn" ]; then
echo -e "WARNING: $1.ovpn already exist."
echo -e "\nAborting."
exit 1
fi
FILE=template.ovpn
echo -e "Checking for template profile $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE=ca.crt
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE="$1.crt"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
FILE="$1.key"
echo -e "Checking for $FILE... "
if [ ! -f $FILE ]; then
echo -e "ERROR: $FILE not found."
echo -e "\nAborting."
exit 1
fi
# All files exist
echo -e "All files exist.\n"
FILE=client.ovpn
echo "Creating $1.ovpn base file with $FILE..."
cp "$FILE" "$1.ovpn"
if [ ! -f "$1.ovpn" ]; then
echo -e "ERROR: $1.ovpn couldn't be created. Check permissions."
echo -e "\nAborting."
exit 1
fi
FILE=ca.crt
echo "Append $FILE to $1.ovpn..."
echo "<ca>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</ca>" >> "$1.ovpn"
FILE="$1.crt"
echo "Append $FILE to $1.ovpn..."
echo "<cert>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</cert>" >> "$1.ovpn"
FILE="$1.key"
echo "Append $FILE to $1.ovpn..."
echo "<key>" >> "$1.ovpn"
cat "$FILE" >> "$1.ovpn"
echo "</key>" >> "$1.ovpn"
echo -e "Done.\n"
quinta-feira, 26 de março de 2015
Debian GNU/Linux: Instalação de pacotes de versões diferentes
Introdução
O objetivo consiste em ter um debian jessie e utilizar a versão 2.5* do avidemux, que já só está disponível nos repositórios wheezy.Versões
Debian GNU/Linux utiliza um sistema de versões muito versátil existindo basicamente três tipos de repositórios: stable (atualmente wheezy), testing (jessie) e unstable (sid).O que os diferencia são as atualizações de pacotes que podem sofrer.
Um sistema que utilize a base stable normalmente possui apenas atualizações de segurança ou de bugs, não são implementadas novas versões que tragam novas funcionalidades.
Já o unstable tem entrada e saída de pacotes de acordo com as necessidades de ter as versões mais recentes de diversos softwares e bibliotecas. Resta acrescentar que esta facilidade na atualização de programas/bibliotecas pode fazer que com um simples upgrade um determinado programa deixe de funcionar com as novas versões de bibliotecas... No entanto, existe sempre muita documentação sobre as atualizações e convém estar atento [1].
O testing junta o melhor dos dois, pois permite ter versões relativamente recentes dos principais programas e bibliotecas e mantém um ritmo salutar de novas versões que, por regra, não trazem incompatibilidades com o software existente.
Se a escolha da versão certa a seguir (stable, testing ou unstable) traz dúvidas, há ainda a considerar a opção de poder utilizar pacotes com versões diferentes das que estão no repositório principal.
Isto é, utilizar uma base stable e instalar um software cuja versão existe apenas a partir do testing. Neste caso é pretendido exatamente o oposto disto.
APT Pinning
Consiste na indicação da prioridade a dar a cada repositório, mas pode ser definida por pacote.No caso em questão, as versões recentes do avidemux trouxeram algumas novidades que impediam, por exemplo, a visualização lado a lado do input e output do vídeo com os efeitos.
Assim, neste caso é uma base testing (jessie) que terá instalado o avidemux a partir da base stable (wheezy). Como este programa não faz parte dos repositórios debian oficiais, normalmente é instalado a partir dos repositórios deb-multimedia.org.
Assim, é necessário adicionar ambos os repositórios em /etc/apt/sources.list.d/multimedia.list:
deb http://www.deb-multimedia.org wheezy main non-free
deb http://www.deb-multimedia.org jessie main non-free
Como os pacotes no jessie são mais recentes que os do wheezy, tudo o que seja atualizações e instalações seram feitas smepre a partir do jessie.
Assim, para forçar uma determinada versão que possui as funcionalidades pretendidas, é necessário especificar as seguintes preferências em /etc/apt/preferences:
Package: avidemux
Pin: version 1:2.5*
Pin-Priority: 1001
Package: avidemux-common
Pin: version 1:2.5*
Pin-Priority: 1001
Package: avidemux-plugins
Pin: version 1:2.5*
Pin-Priority: 1001
A partir daqui basta atualizar com apt-get update
Depois qualquer apt-get install ou apt-get upgrade ou mesmo apt-get dist-upgrade irá seguir as preferências em relação aos pacotes definidos.
Referências
[1] - https://wiki.debian.org/DebianUnstable#Where_can_I_get_help_with_Sid.3F[2] - https://wiki.debian.org/AptPreferences
segunda-feira, 16 de março de 2015
Android: Alterar ficheiros e pastas em /system
Após muita pesquisa aqui ficam algumas dicas para, de uma forma simples e sem instalar muitas aplicações, ter acesso ao sistema de ficheiros /system do Android que normalmente está acessível apenas em modo de leitura.
Android 4.4.4 KTU84P
MIUI 5.2.6 Beta
Terminal Emulator for Android by Jack Palevich [3]
2. Abrir o Terminal Emulator e na consola deve aperecer algo terminado com $, para ativar o modo de root, basta executar su e deve aparecer o símbolo # na linha de comando.
3.1. Verificar as partições montadas:
mount
3.2. Verificar as características da partição /system
mount | grep /system
Normalmente aparece algo do género:
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0
4. Remontar a partição /system como rw
mount -o rw,remount /system
5. COM O DEVIDO CUIDADO é possível alterar a informação existente.
6. Para voltar a ter a partição apenas como leitura é possível reiniciar o dispositivo ou então com o comando:
mount -o ro,remount /system
[2] - http://forum.xda-developers.com/showthread.php?t=921928 - Copiar ficheiros para /system
[3] - https://play.google.com/store/apps/details?id=jackpal.androidterm - Terminal Emulator for Android
Hardware/Software utilizado
Xiaomi Redmi 2Android 4.4.4 KTU84P
MIUI 5.2.6 Beta
Terminal Emulator for Android by Jack Palevich [3]
Instruções
1. Através da aplicação Security do Android é possível aceder às Permissions e aí ao Root access, sendo necessário ativar o Terminal Emulator para que tenha acesso root.2. Abrir o Terminal Emulator e na consola deve aperecer algo terminado com $, para ativar o modo de root, basta executar su e deve aparecer o símbolo # na linha de comando.
3.1. Verificar as partições montadas:
mount
3.2. Verificar as características da partição /system
mount | grep /system
Normalmente aparece algo do género:
/dev/block/bootdevice/by-name/system /system ext4 ro,seclabel,relatime,discard,data=ordered 0 0
4. Remontar a partição /system como rw
mount -o rw,remount /system
5. COM O DEVIDO CUIDADO é possível alterar a informação existente.
ATENÇÃO
Pode estar a alterar informação
que torne o dispositivo inoperável!
que torne o dispositivo inoperável!
Proceda com cuidado.
6. Para voltar a ter a partição apenas como leitura é possível reiniciar o dispositivo ou então com o comando:
mount -o ro,remount /system
Outros Cenários
Caso estes procedimentos funcionem com outros dispositivos e/ou versões do Android, pode adicionar essa informação nos comentários.Referências
[1] - http://www.pocketmagic.net/write-on-the-android-read-only-file-system/ - Comandos para remontar partições no Android[2] - http://forum.xda-developers.com/showthread.php?t=921928 - Copiar ficheiros para /system
[3] - https://play.google.com/store/apps/details?id=jackpal.androidterm - Terminal Emulator for Android
domingo, 30 de novembro de 2014
crunchbang #! - Instalação e Personalização
Para a versão crunchabng #! waldorf de 64bits.
sudo apt-get update && sudo apt-get dist-upgrade
Comentar o repositório do crunchbang (manter ativo pode dar problemas) e alterar os repositórios debian para jessie
sudo nano /etc/apt/sources.list:
## CRUNCHBANG
#deb http://packages.crunchbang.org/waldorf waldorf main
#deb-src http://packages.crunchbang.org/waldorf waldorf main
## DEBIAN
deb http://http.debian.net/debian jessie main contrib non-free
#deb http://http.debian.net/debian wheezy main contrib non-free
#deb-src http://http.debian.net/debian wheezy main contrib non-free
## DEBIAN SECURITY
deb http://security.debian.org/ jessie/updates main
#deb http://security.debian.org/ wheezy/updates main
#deb-src http://security.debian.org/ wheezy/updates main
Após a alteração deve atualizar-se tudo:
sudo apt-get update && sudo apt-get dist-upgrade
Sempre que o dist-upgrade der erro, pode tentar corrigir-se com:
sudo apt-get install -f
Depois tentar novamente a atualização até não haver mais erros (caso haja mais erros, tentar corrigir com o comando anterior):
sudo apt-get dist-upgrade
Para resolver este erro é necessário remover os pacotes cb-tint2 tint2conf.
Errors were encountered while processing:
/var/cache/apt/archives/tint2_0.11+svn20121014-3_amd64.deb
sudo apt-get remove cb-tint2 tint2conf
Depois resta continuar com:
sudo apt-get dist-upgrade
sudo nano /etc/apt/sources.list.d/multimedia.list
deb http://www.deb-multimedia.org jessie main non-free
sudo apt-get update
sudo apt-get install deb-multimedia-keyring
A partir daqui é possível instalar o software pretendido:
sudo apt-get install redshift openjdk-7-jre owncloud-client libreoffice fotowall shotwell darktable inkscape gthumb scribus audacity audacious avidemux blender mkvtoolnix-gui mediainfo-gui openshot winff-gtk2 arduino fritzing remmina virtualbox
De seguida é descrito o software a instalar com uma breve descrição.
RedShift - programa que automaticamente ajusta o gama do monitor para refletir a altura do dia (mais 'quente' à noite e mais 'frio' durante o dia)
OpenJDK 7 JRE - Java Runtime Environment para executar programas em Java
Owncloud Client - cliente para sincronização com o servidor owncloud
LibreOffice - ferramenta de produtividade com processador de texto, folha de cálculo, apresentações, etc.
Fotowall - software para edição rápida de fotomontagens
Audacious - player de música leve e com suporte para receber streaming de radio
Remmina - gestão de ligações remotas com suporte para definições de tunneling com SSH
Google Chrome - browser que pode ser instalado pelo auxiliar do crunchbang acessível a partir de:
Network > WWW browsers > Install Google Chrome
Virtualbox - gestão de máquinas virtuais
Preferencialmente será instalado em /opt.
sudo apt-get install -f
Nota: Com a utilização do jessie deixou de funcionar corretamente (ao arrancar abre uma janela em branco e não deixa fazer qualquer interação).
ShotCut 14.11.01 - software para corte de vídeo com render. Está disponível aqui http://www.shotcut.org/bin/view/Shotcut/Download
utilizador: utilizador cdrom floppy sudo audio dip video plugdev fuse scanner bluetooth netdev
[1] - zyx @ CrunchBang Linux Forums - [SOLVED] Upgrading to "testing" + #! repo
http://crunchbang.com/forums/viewtopic.php?id=11990
[2] - thevdude @ CrunchBang Linux Forums - HOW-TO Upgrading from #!Stable to #!Testing
http://crunchbang.org/forums/viewtopic.php?id=15249&p=1
[3] - Admin @ Linux Support: How-to Guides, Tips, and News - To Do List After installing Crunchbang Stable Debian Linux OS
https://debianhelp.wordpress.com/2012/10/02/crunchbang-11-waldorf-debian-wheezy-os/
[4] - Tema Adwaita-Dark de Iki Shamuayka @ xfce-look.org
http://xfce-look.org/content/show.php/Adwaita-Dark?content=148170
Instalação
No processo de instalação do crunchbang #! waldorf de 64bits, será utilizado:
- /dev/sda1 - ext4 para /
- /dev/sda4 - ext4 para /home
Upgrade para jessie
Após a instalação deve atualizar-se tudo:sudo apt-get update && sudo apt-get dist-upgrade
Comentar o repositório do crunchbang (manter ativo pode dar problemas) e alterar os repositórios debian para jessie
sudo nano /etc/apt/sources.list:
## CRUNCHBANG
#deb http://packages.crunchbang.org/waldorf waldorf main
#deb-src http://packages.crunchbang.org/waldorf waldorf main
## DEBIAN
deb http://http.debian.net/debian jessie main contrib non-free
#deb http://http.debian.net/debian wheezy main contrib non-free
#deb-src http://http.debian.net/debian wheezy main contrib non-free
## DEBIAN SECURITY
deb http://security.debian.org/ jessie/updates main
#deb http://security.debian.org/ wheezy/updates main
#deb-src http://security.debian.org/ wheezy/updates main
Após a alteração deve atualizar-se tudo:
sudo apt-get update && sudo apt-get dist-upgrade
Sempre que o dist-upgrade der erro, pode tentar corrigir-se com:
sudo apt-get install -f
Depois tentar novamente a atualização até não haver mais erros (caso haja mais erros, tentar corrigir com o comando anterior):
sudo apt-get dist-upgrade
Para resolver este erro é necessário remover os pacotes cb-tint2 tint2conf.
Errors were encountered while processing:
/var/cache/apt/archives/tint2_0.11+svn20121014-3_amd64.deb
sudo apt-get remove cb-tint2 tint2conf
Depois resta continuar com:
sudo apt-get dist-upgrade
Software Adicional - Instalação automática
A instalação automática de software pressupõe que o mesmo exista nos repositórios. Um repositório interessante para utilizar no âmbito dos programas multimédia é o deb-multimedia.org, que será instalado de seguida.Repositório Multimédia
Adicionar repositório deb-multimedia:sudo nano /etc/apt/sources.list.d/multimedia.list
deb http://www.deb-multimedia.org jessie main non-free
sudo apt-get update
sudo apt-get install deb-multimedia-keyring
A partir daqui é possível instalar o software pretendido:
sudo apt-get install redshift openjdk-7-jre owncloud-client libreoffice fotowall shotwell darktable inkscape gthumb scribus audacity audacious avidemux blender mkvtoolnix-gui mediainfo-gui openshot winff-gtk2 arduino fritzing remmina virtualbox
De seguida é descrito o software a instalar com uma breve descrição.
.: S o f t w a r e G e n é r i c o :.
RedShift - programa que automaticamente ajusta o gama do monitor para refletir a altura do dia (mais 'quente' à noite e mais 'frio' durante o dia)
OpenJDK 7 JRE - Java Runtime Environment para executar programas em Java
Owncloud Client - cliente para sincronização com o servidor owncloud
LibreOffice - ferramenta de produtividade com processador de texto, folha de cálculo, apresentações, etc.
.: G r á f i c o s :.
Fotowall - software para edição rápida de fotomontagens
Shotwell - gestão e organização de fotografias
Darktable - gestão e processamento de fotografias em RAW
Inkscape - edição de imagem vetorial
Gthumb - gestor e editor rápido de fotografias
Scribus - software de paginação
Scribus - software de paginação
.: M u l t i m é d i a :.
Audacious - player de música leve e com suporte para receber streaming de radio
Audacity - edição de áudio com captura
Avidemux - edição rápida de vídeos, muito útil para fazer cortes rápidos sem renderizar
Blender - modelação e animação 3D
Blender - modelação e animação 3D
MKVToolNix - caixa de ferramentas para vídeos em MKV, permite acrescentar e eliminar streams
MediaInfo - Obtém toda a informação de ficheiros multimédia com codecs, bitrates, resoluções, etc
OpenShot - edição simples de vídeo com diversos efeitos e opções faz o render com diversas opções de resolução, qualidade, codec, etc
WinFF - interface para conversão de ficheiros multimédia utilizando o ffmpeg
WinFF - interface para conversão de ficheiros multimédia utilizando o ffmpeg
.: D e s e n v o l v i m e n t o :.
Arduino IDE - Interface para programação e comunicação com o arduino
Fritzing - Desenho de circuitos eletrónicos
.: R e d e :.
Remmina - gestão de ligações remotas com suporte para definições de tunneling com SSH
Google Chrome - browser que pode ser instalado pelo auxiliar do crunchbang acessível a partir de:
Network > WWW browsers > Install Google Chrome
.: S i s t e m a :.
Software Adicional - Instalação Manual
Apesar de haver muito software nos repositórios, pode ser necessário ter instalada uma versão específica de um software que lá existe, ou então ter software que não possui repositórios.Preferencialmente será instalado em /opt.
.: S o f t w a r e G e n é r i c o :.
Calibre 2.12 - gestão de livros e outras edições digitais
sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('/opt')"
sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('/opt')"
.: M u l t i m é d i a :.
CeltX 2.97 - software para pré-produção audiovisual: desenvolvimento da narrativa, gestão de personagens, argumento, storyboard, etc. A aplicação web é muito limitativa em relação à versão desktop (muito antiga, é certo). Para obter a versão desktop é necessário descarregar a partir de http://download.celtx.com/2.9.7/Celtx- 2.9.7-64.tar.bz2
Extrair com:
tar -jxvf Celtx-2.9.7-64.tar.bz2
E executar a partir da pasta.
Lightworks 12.0.2 - Software de edição avançada de vídeo gratuito pode ser obtido aqui: www.lwks.com/downloads
Depois de descarregado o DEB é necessário instalar e resolver as dependências que faltam instalar:
sudo dpkg -i lwks*sudo apt-get install -f
Nota: Com a utilização do jessie deixou de funcionar corretamente (ao arrancar abre uma janela em branco e não deixa fazer qualquer interação).
ShotCut 14.11.01 - software para corte de vídeo com render. Está disponível aqui http://www.shotcut.org/bin/view/Shotcut/Download
Extrair com:
tar -jxvf shotcut*
E executar a partir da pasta.
.: D e s e n v o l v i m e n t o :.
Netbeans IDE 8.0 - IDE para programação e desenvolvimento de aplicações para a web (versão HTML5 + PHP) disponível aqui: https://netbeans.org/downloads/.
RoboCut 1.0.11 - Software para corte de desenhos em SVG em plotters de corte (Silhouette) desenvolvido por Markus Schulz e disponível aqui: https://gitorious.org/robocut/alpharesearchs-robocut/source/86cd3b3eb5d948606a99d5243efae52a1603e3f2:
É necessário fazer o download, extrair, compilar...
Opera 26 - versão estável baseada no chromium webkit. É necessário descarregar a partir daqui: http://www.opera.com/computer/linux
Depois é necessário instalar o .DEB
sudo dpkg -i opera*.deb
Opera 12.16 - última versão estável para Linux com suporte para mail, RSS, notes, etc. É necessário descarregar a partir daqui: http://www.opera.com/download/guide/?ver=12.16 e escolher o formato tar.bz2.
É necessário fazer o download, extrair e instalar
.: G r á f i c o s :.
Inkscape extension: Neon22 inkscape-jigsaw - Esta extensão permite que o Inkscape possa gerar padrões de puzzle. A extensão está muito bem desenhada e permite controlar todos os aspetos: tamanhos, número de peças, etc... As linhas criadas são otimizadas para o corte.
Instalar a extensão no inkscape: Descarregar o zip a partir de https://github.com/Neon22/inkscape-jigsaw e extrair os ficheiros: Lasercut-jigsaw.inx e Lasercut-jigsaw.py para a pasta de extensões do inkscape, neste caso: ~/.config/inkscape/extensions.
.: R e d e :.
Opera 26 - versão estável baseada no chromium webkit. É necessário descarregar a partir daqui: http://www.opera.com/computer/linux
Depois é necessário instalar o .DEB
sudo dpkg -i opera*.deb
Opera 12.16 - última versão estável para Linux com suporte para mail, RSS, notes, etc. É necessário descarregar a partir daqui: http://www.opera.com/download/guide/?ver=12.16 e escolher o formato tar.bz2.
É necessário fazer o download, extrair e instalar
Trobleshooting - Resolução de Problemas
Nesta secção ficam os problemas detetados e, com sorte, a forma de os resolver.
dmenu [Alt+F3]
O menu dinâmico dmenu fornecido pelo pacote suckless-tools fica vazio com o jessie. Para resolver, alterar o ~/.config/dmenu/dmenu-bind.sh para:
nano ~/.config/dmenu/dmenu-bind.sh
nano ~/.config/dmenu/dmenu-bind.sh
exe=`dmenu_path | dmenu_run -b -nb '#151617' -nf '#d8d8d8' -sb '#d8d8d8' -sf '#151617'` && eval "exec $exe"
Opera 12.16 vs Opera 26
A utilização de ambas as versões do opera permitem que toda a gestão de correio, RSS, notas e afins possa ser feita no Opera 12.16 e o resto da navegação com o opera 26.
As configurações do opera 12.16 podem ser efetuadas aquando da instalação a partir do tar.bz2 e, por defeito as configurações (ficheiros, mailboxes, etc) estariam em ~/.opera/ e é aí que também pode ser instalado o programa, podendo ser executado a partir de ~/.opera/bin/opera. Fica assim tudo o que diz respeito ao opera 12.16 restrito à pasta ~/.opera.
As configurações das novas versões do opera agora seguem o standard e ficam em: ~/.config/opera.
Também é possível instalar a versão beta que guarda as definições em ~/config/opera-beta e não gera conflitos com as restantes versões.
Update: Atualmente utilizo as três versões: opera 12.16 para mail, RSS, notas e afins; opera-beta para grande parte da navegação; e opera stable 26 para outra navegação independente.
Update: Atualmente utilizo as três versões: opera 12.16 para mail, RSS, notas e afins; opera-beta para grande parte da navegação; e opera stable 26 para outra navegação independente.
Aplicações gtk3 com aspeto muito feio
A atualização do software implica que as versões mais recentes de muitos programas utilizem o gtk3, que tem um aspeto muito feio neste setup.
É possível instalar os temas do gnome-themes-standard:
sudo apt-get install gnome-themes-standard
E ativar o Adwaita ou então instalar o tema Adwaita-Dark (que suporta gtk2 e gtk3) a partir daqui [4], descompactar e mover para /usr/share/themes e depois indicar o tema a utilizar pelas aplicações gtk3 em:
nano ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=Adwaita-Dark
...
HP 1510 - scan e impressão
A HP recomenda a instalação da versão HPLIP 3.13.8 (para debian wheezy 7.6) e nos repositórios da jessie está a versão:
apt-cache show hplip
Package: hplip
Source: hplip (3.14.6-1)
Version: 3.14.6-1+b2
Assim, resta instalar e utilizar:
sudo apt-get install hplip hplip-gui
Por defeito o utilizador pertence ao grupo scanner:
groups
Deve adicionar-se também o grupo lp ao utilizador e depois fazer logout para que seja assumido o novo grupo.
sudo adduser utilizador lp
http://crunchbang.com/forums/viewtopic.php?id=11990
[2] - thevdude @ CrunchBang Linux Forums - HOW-TO Upgrading from #!Stable to #!Testing
http://crunchbang.org/forums/viewtopic.php?id=15249&p=1
[3] - Admin @ Linux Support: How-to Guides, Tips, and News - To Do List After installing Crunchbang Stable Debian Linux OS
https://debianhelp.wordpress.com/2012/10/02/crunchbang-11-waldorf-debian-wheezy-os/
[4] - Tema Adwaita-Dark de Iki Shamuayka @ xfce-look.org
http://xfce-look.org/content/show.php/Adwaita-Dark?content=148170
quinta-feira, 27 de novembro de 2014
rsyslogd em openVZ utiliza 100% de CPU
Num contentor openVZ do ubuntu 14.04 o processo do rsyslogd pode ocupar 100% de CPU.
A solução passa por aceder ao container que contém o processo problemático:
vzctl enter 101
Parar o serviço:
service rsyslog stop
Alterar a configuração do rsyslog:
sed -i -e 's/^\$ModLoad imklog/#\$ModLoad imklog/g' /etc/rsyslog.conf
Arrancar o serviço novamente:
service rsyslog start
Após este procedimento o processo já comporta normalmente.
[1] - Ron Fish @ Turnkey Linux forums - rsyslog spinning CPU on openvz
http://www.turnkeylinux.org/forum/support/20131211/rsyslog-spinning-cpu-openvz
A solução passa por aceder ao container que contém o processo problemático:
vzctl enter 101
Parar o serviço:
service rsyslog stop
Alterar a configuração do rsyslog:
sed -i -e 's/^\$ModLoad imklog/#\$ModLoad imklog/g' /etc/rsyslog.conf
Arrancar o serviço novamente:
service rsyslog start
Após este procedimento o processo já comporta normalmente.
[1] - Ron Fish @ Turnkey Linux forums - rsyslog spinning CPU on openvz
http://www.turnkeylinux.org/forum/support/20131211/rsyslog-spinning-cpu-openvz
Recuperar um array RAID degradado - mdadm
Num servidor que usa mdadm para utilizar RAID por software foi detetada uma inconsistência no array e foram enviadas duas mensagens automáticas (uma para cada volume do array /dev/md0 e /dev/md1) em tudo semelhantes:
This is an automatically generated mail message from mdadm
running on vs0
A DegradedArray event had been detected on md device /dev/md/0.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md1 : active raid1 sda2[2]
976236408 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[2]
523252 blocks super 1.2 [2/1] [U_]
unused devices:
Ou seja, /proc/mdstat indica que ambos os volumes estão "degraded":
[U_] - indica que uma drive está OK U e outra degradada _ (em caso de falha seria apresentado F)
Mais informações:
mdadm --detail /dev/md0
Raid Level : raid1
Array Size : 523252 (511.07 MiB 535.81 MB)
Used Dev Size : 523252 (511.07 MiB 535.81 MB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Nov 27 09:38:27 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : vs0:0 (local to host vs0)
UUID : b053cdfd:6e0a2b48:f10dcc45:23fdc34a
Events : 185
Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 0 0 1 removed
Pela informação, a unidade que está ativa é apenas /dev/sda: /dev/sda1 no volume /dev/md0 e /dev/sda2 no volume /dev/md1.
Assim, importa perceber o que se passa com a segunda unidade do array: /dev/sdb.
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Teste rápido da unidade:
smartctl --test=short /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Nov 27 10:28:19 2014
Use smartctl -X to abort test.
A unidade fica a efetuar o teste rápido autonomamente (cerca de 1 minuto).
Para ver o histórico dos testes à drive:
smartctl -a /dev/sdb
(...)
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 18225 -
(...)
Teste longo da unidade:
smartctl --test=long /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 164 minutes for test to complete.
Test will complete after Thu Nov 27 13:15:45 2014
Personalities : [raid1]
md1 : active raid1 sdb2[3] sda2[2]
976236408 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.2% (2303296/976236408) finish=169.1min speed=95970K/sec
md0 : active raid1 sdb1[3] sda1[2]
523252 blocks super 1.2 [2/2] [UU]
unused devices:
http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/
[2] - Thomas Niedermeier @ Thomas Krenn - Mdadm recover degraded array
http://www.thomas-krenn.com/en/wiki/Mdadm_recover_degraded_Array
[3] - Vincent Danen @ TechRepublic - Using smartctl to get SMART status information on your hard drives
http://www.techrepublic.com/blog/linux-and-open-source/using-smartctl-to-get-smart-status-information-on-your-hard-drives/
[4] - fjgaude @ ubuntu forums - [SOLVED] Repair Degraded Raid 5 w/ mdadm
http://ubuntuforums.org/showthread.php?t=1293780
This is an automatically generated mail message from mdadm
running on vs0
A DegradedArray event had been detected on md device /dev/md/0.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1]
md1 : active raid1 sda2[2]
976236408 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[2]
523252 blocks super 1.2 [2/1] [U_]
unused devices:
Ou seja, /proc/mdstat indica que ambos os volumes estão "degraded":
[U_] - indica que uma drive está OK U e outra degradada _ (em caso de falha seria apresentado F)
Mais informações:
mdadm --detail /dev/md0
Raid Level : raid1
Array Size : 523252 (511.07 MiB 535.81 MB)
Used Dev Size : 523252 (511.07 MiB 535.81 MB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Nov 27 09:38:27 2014
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : vs0:0 (local to host vs0)
UUID : b053cdfd:6e0a2b48:f10dcc45:23fdc34a
Events : 185
Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 0 0 1 removed
Assim, importa perceber o que se passa com a segunda unidade do array: /dev/sdb.
Utilizar as ferramentas de SMART
A ferramenta smartctl permite obter diversas informações de discos com SMART e efeturar testes.
Para verificar a saúde de uma unidade:
smartctl -H /dev/sdbsmartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Teste rápido da unidade:
smartctl --test=short /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Nov 27 10:28:19 2014
Use smartctl -X to abort test.
A unidade fica a efetuar o teste rápido autonomamente (cerca de 1 minuto).
Para ver o histórico dos testes à drive:
smartctl -a /dev/sdb
(...)
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 18225 -
(...)
Teste longo da unidade:
smartctl --test=long /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 164 minutes for test to complete.
Test will complete after Thu Nov 27 13:15:45 2014
A unidade fica a efetuar o teste rápido autonomamente (cerca de 1 minuto).
Para ver o histórico dos testes à drive:
smartctl -a /dev/sdb
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 18228 -
# 2 Short offline Completed without error 00% 18225 -
Se o disco está OK, vamos reconstruir o array.
Reconstruir o Array
Se /dev/sdb1 e /dev/sdb2 ainda estiverem no array é possível provocar a falha:
mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md0 -f /dev/sdb2
E depois removê-los do array:
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -r /dev/sdb2
Como já estavam removidos do array, é possível colocar a zero o superbloco de cada uma das partições:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
Para os voltar a adicionar ao array:
mdadm --manage -a /dev/md0 /dev/sdb1
mdadm --manage -a /dev/md1 /dev/sdb2
Para ver a evolução da reconstrução do array:
cat /proc/mdstat Personalities : [raid1]
md1 : active raid1 sdb2[3] sda2[2]
976236408 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.2% (2303296/976236408) finish=169.1min speed=95970K/sec
md0 : active raid1 sdb1[3] sda1[2]
523252 blocks super 1.2 [2/2] [UU]
unused devices:
A reconstrução do volume /dev/md0 é muito rápida porque é uma partição pequena.
Já a reconstrução do volumae /dev/md1 é mais demorada.
Após a reconstrução com sucesso é possível observar o estado do array:
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[3] sda2[2]
976236408 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb1[3] sda1[2]
523252 blocks super 1.2 [2/2] [UU]
unused devices:
Referências utilizadas:
[1] - Marius Ducea @ MDLog:/sysadmin - Mdadm Cheat Sheethttp://www.ducea.com/2009/03/08/mdadm-cheat-sheet/
[2] - Thomas Niedermeier @ Thomas Krenn - Mdadm recover degraded array
http://www.thomas-krenn.com/en/wiki/Mdadm_recover_degraded_Array
[3] - Vincent Danen @ TechRepublic - Using smartctl to get SMART status information on your hard drives
http://www.techrepublic.com/blog/linux-and-open-source/using-smartctl-to-get-smart-status-information-on-your-hard-drives/
[4] - fjgaude @ ubuntu forums - [SOLVED] Repair Degraded Raid 5 w/ mdadm
http://ubuntuforums.org/showthread.php?t=1293780
sábado, 15 de novembro de 2014
Instalar debian stable a partir do disco
Pretendia reanimar um velho PC que não arranca por USB.
Uma solução para arrancar a instalação é copiar o kernel e ramdisk de instalação e configurar o grub para os utilizar.
Para fazer isto, utilizei um velho CD debian etch (versão 4.0r3) para instalar uma base mínima e assim ter acesso à configuração do grub.
O projeto vai mantendo sempre informação muito pertinente e aqui https://www.debian.org/releases/stable/i386/ch04s04.html.en é possível obter mais informações sobre o arranque da instalação pelo disco.
Após arrancar no novo sistema, foi necessário criar uma pasta e obter os ficheiros necessários a partir de aqui http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/
mkdir /boot/newinstall
cd /boot/newinstall
wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/linux
Aqui https://www.debian.org/releases/stable/i386/ch05s01.html.en#boot-initrd é possível obter informações sobre a configuração do grub para arranque.
No meu caso, o debian etch ainda utiliza o grub1, pelo que é necessário configurar o ficheiro /boot/grub/menu.lst com o seguinte:
title New Install
root (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz
Caso fosse uma distribuição com grub2, no ficheiro /boot/grub/grub.cfg é possível acrescenter:
menuentry 'New Install' {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /boot/newinstall/linux
initrd /boot/newinstall/initrd.gz
}
Basta reiniciar, escolher a opção do grub e a instalação começa!
Uma solução para arrancar a instalação é copiar o kernel e ramdisk de instalação e configurar o grub para os utilizar.
Para fazer isto, utilizei um velho CD debian etch (versão 4.0r3) para instalar uma base mínima e assim ter acesso à configuração do grub.
O projeto vai mantendo sempre informação muito pertinente e aqui https://www.debian.org/releases/stable/i386/ch04s04.html.en é possível obter mais informações sobre o arranque da instalação pelo disco.
Após arrancar no novo sistema, foi necessário criar uma pasta e obter os ficheiros necessários a partir de aqui http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/
cd /boot/newinstall
wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/linux
Aqui https://www.debian.org/releases/stable/i386/ch05s01.html.en#boot-initrd é possível obter informações sobre a configuração do grub para arranque.
No meu caso, o debian etch ainda utiliza o grub1, pelo que é necessário configurar o ficheiro /boot/grub/menu.lst com o seguinte:
title New Install
root (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz
Caso fosse uma distribuição com grub2, no ficheiro /boot/grub/grub.cfg é possível acrescenter:
menuentry 'New Install' {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /boot/newinstall/linux
initrd /boot/newinstall/initrd.gz
}
Basta reiniciar, escolher a opção do grub e a instalação começa!
segunda-feira, 6 de outubro de 2014
Bash: hosts ativos
arp-scan --interface=eth0 192.168.0.0/24 | grep 192. | sort -n | uniq -w 15 | wc -l
- Listar máquinas ativas
- Apresentar apenas as linhas que contenham "192."
- Ordenar
- Apresentar apenas linhas únicas (sem IP repetido => primeiros 15 caracteres únicos)
- Contar as linhas (seja IP's únicos)
Subscrever:
Mensagens (Atom)