Quando usar o Dropbox via command line no linux, uma boa alternativa para controlar é sar o script dropbox.py (https://www.dropbox.com/download?dl=packages/dropbox.py) para startar, parar, e verificar o status do dropbox.
Para mudar o local da pasta padrão de arquivos DropBox uma sugestão é utilizar link simbólico. Etapas:
dropbox stop
mv ~/Dropbox /target/folder
ln -s /target/folder/Dropbox ~/
dropbox start
(dica original em http://www.dropboxwiki.com/Text_Based_Linux_Install)
terça-feira, 20 de novembro de 2012
quinta-feira, 1 de novembro de 2012
MySQL - Visualização / Criação / Alteração de Procedures e Functions
No MySQL para o usuário poder visualizar, criar ou alterar Procedures e Functions, são necessárias as seguintes permissões (GRANT):
-- PERMISSÃO DE LEITURA NO MYSQL PARA A TABELA DE PROCEDURES
GRANT SELECT ON mysql.proc TO '<USUARIO>'@'%';
-- CRIAÇÃO DE PROCEDURES
GRANT CREATE ROUTINE ON <schema>.* TO '<USUARIO>'@'%';
-- ALTERAÇÃO DE PROCEDURES
GRANT ALTER ROUTINE ON <schema>.* TO '<USUARIO>'@'%';
-- PERMISSÃO DE LEITURA NO MYSQL PARA A TABELA DE PROCEDURES
GRANT SELECT ON mysql.proc TO '<USUARIO>'@'%';
-- CRIAÇÃO DE PROCEDURES
GRANT CREATE ROUTINE ON <schema>.* TO '<USUARIO>'@'%';
-- ALTERAÇÃO DE PROCEDURES
GRANT ALTER ROUTINE ON <schema>.* TO '<USUARIO>'@'%';
-- EXECUTAR PROCEDURES
GRANT EXECUTE ON <schema>.* TO '<USUARIO>'@'%';
quinta-feira, 11 de outubro de 2012
Perl - Incluir diretorios ao @INC
O perl utiliza o array de ambiente @INC, que contém os diversos diretórios, para procurar os pacotes perl instalados.
Para acrescentar diretório(s) a este array (que na verdade é inacessível) podem ser utilizados 3 métodos:
O perl ao iniciar a execução de um programa acrescenta ao array @INC o contéudo desta variável.
Sintraxe:
Linux/Unix/MacOsX
export PERL5LIB=/path/to/1:/path/to/2
Windows
set PERL5LIB=<unidade>:\path\to\1;<unidade>:\path\to\2
Sintaxe:
use lib '/home/foobar/code';
use My::Module;
Sintaxe:
perl -I /path/to/module script.pl
Para acrescentar diretório(s) a este array (que na verdade é inacessível) podem ser utilizados 3 métodos:
1) Utilização da variável de ambiente PERL5LIB
Esta variável de ambiente assemelha-se a variável PATH e pode conter uma lista de diretórios.O perl ao iniciar a execução de um programa acrescenta ao array @INC o contéudo desta variável.
Sintraxe:
Linux/Unix/MacOsX
export PERL5LIB=/path/to/1:/path/to/2
Windows
set PERL5LIB=<unidade>:\path\to\1;<unidade>:\path\to\2
2) Comando use lib
Incluir no início do script/programa perl o comando use lib fará com que o perl acrescente ao array @INC este caminho.Sintaxe:
use lib '/home/foobar/code';
use My::Module;
Observe que o use lib deve ser usado antes do use dos pacotes/módulos.
3) Executar o script com a opção -I
Ao executar o script usando o comando perl, passar o parâmetro -I (i maiúsculo) com o caminho desejado. O diretório será então adicionado ao array @INC apenas para a execução deste script.
perl -I /path/to/module script.pl
sexta-feira, 17 de agosto de 2012
Script DOS - IF - Teste Condicional
Esta é velha ! Bem Velha !
Para efetuar teste condicional em scripts BAT (DOS) utiliza-se o comando IF.
Sintaxe:
IF <CONDICAO> GOTO <LABEL>
onde:
<CONDICAO> condição a ser testada
<LABEL> nome do label para onde a execução do processo será desviada.
Veja o exemplo:
@echo off
SET E1=0
echo.
:exec_e1
if %E1% equ 1 goto exec_e2
echo Executando E1
:exec_e2
echo Executando E2
:end
Para efetuar teste condicional em scripts BAT (DOS) utiliza-se o comando IF.
Sintaxe:
IF <CONDICAO> GOTO <LABEL>
onde:
<CONDICAO> condição a ser testada
<LABEL> nome do label para onde a execução do processo será desviada.
Veja o exemplo:
@echo off
SET E1=0
echo.
:exec_e1
if %E1% equ 1 goto exec_e2
echo Executando E1
:exec_e2
echo Executando E2
:end
No exemplo acima, se o valor de E1 for igual a 1 ele não executa o comando 'echo Executando E1' indo direto para a execução de 'echo Executando E2'.
quarta-feira, 15 de agosto de 2012
Linux: Administração de Usuários - via prompt
Comandos (via prompt) para administração de usuários.
1) Criação de novo usuário (adicionando-o a um novo grupo:
useradd -G <nome-grupo-1>,<nome-grupo-2>,<nome-grupo-3>,... <usuário>
onde:
<nome-grupo-1> : grupo(s) onde o usuário será incluído. Os grupos devem existir e deverão ser separados por ',' (vírgula)
<usuário> : username do usuário
exemplo:
useradd -G desenvolvedores renato
Cria o usuário 'renato' e o adiciona ao grupo desenvolvedores
2) Verificar as credenciais de um usuário:
id <usuário>
onde:
<usuário> : username do usuário
exemplo:
id renato
3) Criação de novo grupo
groupadd <nome-grupo>
onde:
<nome-grupo> : nome do grupo que será criado
exemplo
groupadd desenvolvedores
Cria um novo grupo chamado desenvolvedores.
Os grupos existentes poderão ser verificados em /etc/group
4) Adicionar um usuário existente a um grupo
usermod -a -G <nome-grupo> <usuário>
onde:
<nome-grupo> : grupo onde o usuário será incluído. Este grupo deveŕa existir.
<usuário> : username do usuário
exemplo:
usermod -a -G desenvolvedores renato
Adiciona o usuário renato ao grupo desenvolvedores.
sexta-feira, 10 de agosto de 2012
Usando o RAR no MAC OSX
Para instalar o RAR no MAC OSX considere:
UnRarX (Interface com gui)- http://www.unrarx.com/index.html
Unrar - via port (prompt) :
sudo port selfupdate
sudo port install unrar
comandos (dicas obtidas em http://www.keleko.com/2010/extracting-rar-files-from-the-command-line-in-linux-unix-or-mac-osx/):
Extrai arquivo no diretório (sem manter o path original)
unrar e file.rar
Extrai arquivo no diretório (mantendo o path original)
unrar x file.rar
Listar arquivos
unrar l file.rar
Extrair arquivo com senha
unrar e -pPASSWORD file.rar
Extrair diversos arquivos com a mesma senha
find . -type f -name "*.part1.rar" -exec unrar e -pPASSWORD {} \;
UnRarX (Interface com gui)- http://www.unrarx.com/index.html
Unrar - via port (prompt) :
sudo port selfupdate
sudo port install unrar
comandos (dicas obtidas em http://www.keleko.com/2010/extracting-rar-files-from-the-command-line-in-linux-unix-or-mac-osx/):
Extrai arquivo no diretório (sem manter o path original)
unrar e file.rar
Extrai arquivo no diretório (mantendo o path original)
unrar x file.rar
Listar arquivos
unrar l file.rar
Extrair arquivo com senha
unrar e -pPASSWORD file.rar
Extrair diversos arquivos com a mesma senha
find . -type f -name "*.part1.rar" -exec unrar e -pPASSWORD {} \;
terça-feira, 31 de julho de 2012
Atenção com SORT em LINUX
Por default, algumas compilações/distribuições LINUX (como o CentOS), tem o seu ambiente definido de modo com que o aplicativo SORT considere em seu processo de ordenação apenas os caracteres válidos em dicionário - ou seja, caracteres alfanuméricos (a/A-z/N e 0-9), sem pontuações (! ? , . <espaço>, etc). Caso você necessite que tais caracteres sejam considerados na ordenação deve-se, independente dos parâmetros do próprio SORT (como -d -g e outros) alterar a variável de ambiente LC_ALL para C, e na sequência executar o SORT. Veja como:
export LC_ALL=C; sort <parâmetros>
Esta observação faz parte inclusive da documentação do GNU-SORT, conforme texto abaixo:
*** WARNING *** The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values.
segunda-feira, 30 de julho de 2012
Executando programas/jobs em Background
Para executar e controlar programas/scripts como jobs em background em ambiente Linux, utiliza-se os comandos bg, fg e jobs.
Para colocar um programa em background, pode-se fazer de duas maneiras:
1) Usando o & ao final do comando:
exemplo:
$ vi teste.txt &
[2] 6865
2) Após o início da execução do programa, usar o conjunto de teclas <CTRL-Z>
$ man fg
[1]+ Stopped man fg
Para verificar os jobs sendo executados utiliza-se o comando jobs
exemplo:
jobs
[1]- Stopped man fg
[2]+ Stopped vi teste.txt
jobs -l
3) Para colocar o programa para ser executado em background utiliza-se o comando bg <job>
exemplo:
$ jobs
[1]- Stopped man fg
[3]+ Stopped gedit teste.txt
$ bg 3
[3]+ gedit teste.txt &
4) Para trazer um programa que está sendo executado em background para foreground (pra frente) utiliza-se o comando fg <job>.
exemplo;
fg 1
Para colocar um programa em background, pode-se fazer de duas maneiras:
1) Usando o & ao final do comando:
exemplo:
$ vi teste.txt &
[2] 6865
2) Após o início da execução do programa, usar o conjunto de teclas <CTRL-Z>
$ man fg
[1]+ Stopped man fg
Para verificar os jobs sendo executados utiliza-se o comando jobs
exemplo:
jobs
[1]- Stopped man fg
[2]+ Stopped vi teste.txt
jobs -l
[1]- 6836 Stopped man fg
[2]+ 6865 Stopped (tty output) vi teste.txt
3) Para colocar o programa para ser executado em background utiliza-se o comando bg <job>
exemplo:
$ jobs
[1]- Stopped man fg
[3]+ Stopped gedit teste.txt
$ bg 3
[3]+ gedit teste.txt &
$ jobs -l
[1]+ 6918 Stopped man fg
[3]- 6942 Running gedit teste.txt &
4) Para trazer um programa que está sendo executado em background para foreground (pra frente) utiliza-se o comando fg <job>.
exemplo;
fg 1
quinta-feira, 26 de julho de 2012
Executar um comando periodicamente
Para executar um comando a cada tempo, pode-se usar o comando watch do linux:
Sintaxe
watch -n <segundos> '<comando>'
onde:
<segundos> intervalo de tempo (em segundos) - Default 2 segundos
<comando> comando a ser executado
Exemplo
watch 'ls -lhtr' -> Lista o diretório a cada 2 segundos
Sintaxe
watch -n <segundos> '<comando>'
onde:
<segundos> intervalo de tempo (em segundos) - Default 2 segundos
<comando> comando a ser executado
Exemplo
watch 'ls -lhtr' -> Lista o diretório a cada 2 segundos
Compactar arquivos usando Multi Thread
Para compactar (e descompactar) arquivos em máquinas com mais de um núcleo a sugestão é utilizar o utilitário pigz (http://zlib.net/pigz/) que possui os mesmos paramêtros do gzip e trabalha com diversas threads !
terça-feira, 24 de julho de 2012
Como mover os "n" primeiros arquivos de um diretório para outro
O problema é simples: você tem um diretório com MUITOS (mas muitos mesmo!) arquivos e, por simplicidade, você quer separá-los em "n" diretórios.
a solução?
mv `ls | head -100` ./subdir1/
a linha acima move os 100 primeiros arquivos listados no ls para o diretório subdir1. Se você executar novamente, vai pegar os próximos 100 e assim sucessivamente...
a solução?
mv `ls | head -100` ./subdir1/
a linha acima move os 100 primeiros arquivos listados no ls para o diretório subdir1. Se você executar novamente, vai pegar os próximos 100 e assim sucessivamente...
quarta-feira, 18 de julho de 2012
Contando e calculando percentuais em MySQL
Queremos contar o número de chamadas no banco que tenham determinado comprimento ("len" do campo) e calcular seu percentual em relação ao total. Como fazer?
select length(ass_a),count(*) as cont, count(*)*t.factor as pct from tabela_1
join (select 100/count(*) as factor from tabela_1) as t
group by 1;
O resultado:
Length(ass_a) | cont | pct
2 | 683 | 0.2049
11 | 284592 | 85.3776
(...)
select length(ass_a),count(*) as cont, count(*)*t.factor as pct from tabela_1
join (select 100/count(*) as factor from tabela_1) as t
group by 1;
O resultado:
Length(ass_a) | cont | pct
2 | 683 | 0.2049
11 | 284592 | 85.3776
(...)
terça-feira, 17 de julho de 2012
OpenVPN no Linux
Algumas dicas para uso do OpenVPN no Linux:
1) lembre-se de que no linux o ambiente é case-sensitive, por isso se no seu arquivo de configuração você apontar para Arquivo.crt ele deverá existir com este nome e não como arquivo.crt, por exemplo;
2) Script para usar o OpenVPN como serviço:
Para instalar:
- Copiar este arquivo para /etc/init.d/openvpn
- Setar a configuração deste arquivo como executavel (chmod +x)
- Criar o serviço (chkconfig --add openvpn)
- Os arquivos de configuração devem estar em /etc/openvpn
1) lembre-se de que no linux o ambiente é case-sensitive, por isso se no seu arquivo de configuração você apontar para Arquivo.crt ele deverá existir com este nome e não como arquivo.crt, por exemplo;
2) Script para usar o OpenVPN como serviço:
#!/bin/sh
#
# openvpn This shell script takes care of starting and stopping
# openvpn on RedHat or other chkconfig-based system.
#
# chkconfig: - 24 76
#
# processname: openvpn
# description: OpenVPN is a robust and highly flexible tunneling \
# application that uses all of the encryption, \
# authentication, and certification features of the OpenSSL \
# library to securely tunnel IP networks over a single UDP \
# port.
#
### BEGIN INIT INFO
# Provides: openvpn
# Required-Start: $network
# Required-Stop: $network
# Short-Description: start and stop openvpn
# Description: OpenVPN is a robust and highly flexible tunneling \
# application that uses all of the encryption, \
# authentication, and certification features of the OpenSSL \
# library to securely tunnel IP networks over a single UDP \
# port.
### END INIT INFO
# Contributed to the OpenVPN project by
# Douglas Keller <doug@voidstar.dyndns.org>
# 2002.05.15
# To install:
# copy this file to /etc/rc.d/init.d/openvpn
# shell> chkconfig --add openvpn
# shell> mkdir /etc/openvpn
# make .conf or .sh files in /etc/openvpn (see below)
# To uninstall:
# run: chkconfig --del openvpn
# Author's Notes:
#
# I have created an /etc/init.d init script and enhanced openvpn.spec to
# automatically register the init script. Once the RPM is installed you
# can start and stop OpenVPN with "service openvpn start" and "service
# openvpn stop".
#
# The init script does the following:
#
# - Starts an openvpn process for each .conf file it finds in
# /etc/openvpn.
#
# - If /etc/openvpn/xxx.sh exists for a xxx.conf file then it executes
# it before starting openvpn (useful for doing openvpn --mktun...).
#
# - In addition to start/stop you can do:
#
# service openvpn reload - SIGHUP
# service openvpn reopen - SIGUSR1
# service openvpn status - SIGUSR2
#
# Modifications:
#
# 2003.05.02
# * Changed == to = for sh compliance (Bishop Clark).
# * If condrestart|reload|reopen|status, check that we were
# actually started (James Yonan).
# * Added lock, piddir, and work variables (James Yonan).
# * If start is attempted twice, without an intervening stop, or
# if start is attempted when previous start was not properly
# shut down, then kill any previously started processes, before
# commencing new start operation (James Yonan).
# * Do a better job of flagging errors on start, and properly
# returning success or failure status to caller (James Yonan).
#
# 2005.04.04
# * Added openvpn-startup and openvpn-shutdown script calls
# (James Yonan).
#
# Location of openvpn binary
openvpn=""
openvpn_locations="/usr/sbin/openvpn /usr/local/sbin/openvpn"
for location in $openvpn_locations
do
if [ -f "$location" ]
then
openvpn=$location
fi
done
# Lockfile
lock="/var/lock/subsys/openvpn"
# PID directory
piddir="/var/run/openvpn"
# Our working directory
work=/etc/openvpn
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
if [ ${NETWORKING} = "no" ]
then
echo "Networking is down"
exit 0
fi
# Check that binary exists
if ! [ -f $openvpn ]
then
echo "openvpn binary not found"
exit 0
fi
# See how we were called.
case "$1" in
start)
echo -n $"Starting openvpn: "
/sbin/modprobe tun >/dev/null 2>&1
# From a security perspective, I think it makes
# sense to remove this, and have users who need
# it explictly enable in their --up scripts or
# firewall setups.
#echo 1 > /proc/sys/net/ipv4/ip_forward
# Run startup script, if defined
if [ -f $work/openvpn-startup ]; then
$work/openvpn-startup
fi
if [ ! -d $piddir ]; then
mkdir $piddir
fi
if [ -f $lock ]; then
# we were not shut down correctly
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill `cat $pidf` >/dev/null 2>&1
fi
rm -f $pidf
done
rm -f $lock
sleep 2
fi
rm -f $piddir/*.pid
cd $work
# Start every .conf in $work and run .sh if exists
errors=0
successes=0
for c in `/bin/ls *.conf 2>/dev/null`; do
bn=${c%%.conf}
if [ -f "$bn.sh" ]; then
. ./$bn.sh
fi
rm -f $piddir/$bn.pid
# Handle backward compatibility, see Red Hat Bugzilla ID #458594
script_security=''
if [ -z "$( grep '^[[:space:]]*script-security[[:space:]]' $c )" ]; then
script_security="--script-security 2"
fi
$openvpn --daemon --writepid $piddir/$bn.pid --config $c --cd $work $script_security
if [ $? = 0 ]; then
successes=1
else
errors=1
fi
done
if [ $errors = 1 ]; then
failure; echo
else
success; echo
fi
if [ $successes = 1 ]; then
touch $lock
fi
;;
stop)
echo -n $"Shutting down openvpn: "
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill `cat $pidf` >/dev/null 2>&1
fi
rm -f $pidf
done
# Run shutdown script, if defined
if [ -f $work/openvpn-shutdown ]; then
$work/openvpn-shutdown
fi
success; echo
rm -f $lock
;;
restart)
$0 stop
sleep 2
$0 start
;;
reload)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -HUP `cat $pidf` >/dev/null 2>&1
fi
done
else
echo "openvpn: service not started"
exit 1
fi
;;
reopen)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -USR1 `cat $pidf` >/dev/null 2>&1
fi
done
else
echo "openvpn: service not started"
exit 1
fi
;;
condrestart)
if [ -f $lock ]; then
$0 stop
# avoid race
sleep 2
$0 start
fi
;;
status)
if [ -f $lock ]; then
for pidf in `/bin/ls $piddir/*.pid 2>/dev/null`; do
if [ -s $pidf ]; then
kill -USR2 `cat $pidf` >/dev/null 2>&1
fi
done
echo "Status written to /var/log/messages"
else
echo "openvpn: service not started"
exit 1
fi
;;
*)
echo "Usage: openvpn {start|stop|restart|condrestart|reload|reopen|status}"
exit 1
;;
esac
exit 0
Para instalar:
- Copiar este arquivo para /etc/init.d/openvpn
- Setar a configuração deste arquivo como executavel (chmod +x)
- Criar o serviço (chkconfig --add openvpn)
- Os arquivos de configuração devem estar em /etc/openvpn
terça-feira, 3 de julho de 2012
Habilitar SSH no Ubuntu
Para habilitar o acesso SSH ao Ubuntu (10.04 LTS) deve-se instalar o pacote OpenSSH
sudo apt-get install openssh-server
Após instalado o serviço, pode-se controlar o start / stop a partir do comando service ou ainda a partir do próprio script de do ssh
sudo service ssh start | stop | restart
sudo /etc/init.d/ssh start | stop |restart
O arquivo de configuração do SSH fica em:
/etc/ssh/sshd_config
sudo apt-get install openssh-server
Após instalado o serviço, pode-se controlar o start / stop a partir do comando service ou ainda a partir do próprio script de do ssh
sudo service ssh start | stop | restart
sudo /etc/init.d/ssh start | stop |restart
O arquivo de configuração do SSH fica em:
/etc/ssh/sshd_config
sexta-feira, 29 de junho de 2012
PHP - Erro na Interpretação
Em um servidor apache, caso o php não esteja sendo devidamente interpretado - devido o arquivo php não possuir a diretiva <?php no início - deve-se alterar no arquivo php.ini (normalmente encontrado em /etc ) o parâmetro short_open_tag para On, conforme abaixo:
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://www.php.net/manual/en/ini.core.php#ini.short-open-tag
short_open_tag = On
Importante: Após a alteração, o serviço apache (httpd no fedora/CentOS) deverá ser restartado.
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It's been
; recommended for several years that you not use the short tag "short cut" and
; instead to use the full <?php and ?> tag combination. With the wide spread use
; of XML and use of these tags by other languages, the server can become easily
; confused and end up parsing the wrong code in the wrong context. But because
; this short cut has been a feature for such a long time, it's currently still
; supported for backwards compatibility, but we recommend you don't use them.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://www.php.net/manual/en/ini.core.php#ini.short-open-tag
short_open_tag = On
Importante: Após a alteração, o serviço apache (httpd no fedora/CentOS) deverá ser restartado.
Desabilitar o SELINUX
Caso deseje desabilitar o SELINUX (segundo o Wikipedia: "SELinux provê uma política de segurança sobre todos os processos e objetos do sistema baseando suas decisões em etiquetas contendo uma variedade de informações relevantes à segurança. A lógica da política de tomada de decisões é encapsulada dentro de um simples componente conhecido como servidor de segurança ('security server') com uma interface geral de segurança." - http://pt.wikipedia.org/wiki/SELinux) no FEDORA ou no CentOS.
Definitivo:
Alterar o arquivo /etc/selinux/config, mudando o parâmetro SELINUX para disabled. Certifique-se de ter acesso ao arquivo.
Temporário:
No modo root, usar o seguinte comando:
echo 0 > /selinux/enforce
Definitivo:
Alterar o arquivo /etc/selinux/config, mudando o parâmetro SELINUX para disabled. Certifique-se de ter acesso ao arquivo.
Temporário:
No modo root, usar o seguinte comando:
echo 0 > /selinux/enforce
Serviços no Linux
Para iniciar automaticamente alguns serviços (ou mesmo para executar alguns serviços quando do encerramento do sistema) utiliza-se o comando chkconfig, conforme abaixo (lembre-se de executá-lo com a devida permissão de root - sudo)
Para adicionar o serviço: chkconfig --add
Sintaxe:
Para configurar o status do serviço
Sintaxe
chkconfig --runlevel <level0 a level6> <serviço> [on|off]
Onde, runlevel
0 - Halt -> Desliga o Sistema
1 - Mono-tarefa (Single-User Mode) -> Não inicia os daemons (serviços), multi-tarefa
Configurar o serviço do MySQL para start automático no modo multi-tarefa:
chkconfig --add mysqld
chkconfig --level 35 mysqld on
Para adicionar o serviço: chkconfig --add
Sintaxe:
chkconfig --add <serviço>
<serviço> - Nome do serviço (programa) que será executado.
Para configurar o status do serviço
Sintaxe
chkconfig --runlevel <level0 a level6> <serviço> [on|off]
Onde, runlevel
0 - Halt -> Desliga o Sistema
1 - Mono-tarefa (Single-User Mode) -> Não inicia os daemons (serviços), multi-tarefa
2 - Multi-tarefa (Multi-User Mode) -> Inicia o sistema em modo de texto, multi-tarefa, multi-utilizador
3 - Multi-tarefa com Rede (Multi-User Mode with Network) -> Inicia o sistema em modo de texto, multi-tarefa, multi-utilizador e com suporte de rede
4 - Não usado
5 - Modo Gráfico (X Window System) -> Runlevel 3 + X Window System. Modo gráfico, multi-tarefa, multi-utilizador e com suporte de rede
6 - Reboot -> Reinicia o sistema
<serviço> - Nome do serviço (programa) que será executado.
on - Ligado (start)
off - Parado (stop)
Exemplo:
Configurar o serviço do MySQL para start automático no modo multi-tarefa:
chkconfig --add mysqld
chkconfig --level 35 mysqld on
quinta-feira, 28 de junho de 2012
Shell - renomear vários arquivos
Em ambiente Unix-like, para renomear vários arquivos uma boa dica é usar o comando script for com awk.
Sintaxe:
for i in (ls <máscara_arquivos>); do echo $i | awk '{a=$0; b=a; gsub(".txt",".pl",b); print "mv " a " "b;}' | bash; done
Exemplo:
for i in $(ls *.txt); do echo $i | awk '{a=$0; b=a; gsub(".txt",".pl",b); print "mv " a " "b;}' | bash; done
Sintaxe:
for i in (ls <máscara_arquivos>); do echo $i | awk '{a=$0; b=a; gsub(".txt",".pl",b); print "mv " a " "b;}' | bash; done
Exemplo:
for i in $(ls *.txt); do echo $i | awk '{a=$0; b=a; gsub(".txt",".pl",b); print "mv " a " "b;}' | bash; done
terça-feira, 26 de junho de 2012
Ubuntu - Atualização/Instalação de Pacotes
Para manter atualizada a distribuição UBUNTU, através do terminal (prompt) use os seguintes comandos, que deverão ser executados com perfil de root (ou seja, deve ser usado o comando sudo):
sudo apt-get update -> Atualiza os repositórios locais da máquina com as informações a respeito de atualizações de pacotes
sudo apt-get upgrade -> Efetua o update dos pacotes
Para simplificar o processo, pode ser executado da seguinte forma:
sudo apt-get update; sudo apt-get upgrade
Para instalar novos pacotes, use o parâmetro Install
sudo apt-get install <pacote>
Exemplo:
sudo apt-get install apache2
Para pesquisar pacotes uso o comando apt-cache com o parâmetro search
sudo apt-cache search <termo>
Exemplo:
sudo apt-cache search mysql
Caso deseje saber mais sobre um pacote use o comando apt-cache com o parâmetro show
sudo apt-cache show <pacote>
Exemplo:
sudo apt-cache show apache2
sudo apt-get update -> Atualiza os repositórios locais da máquina com as informações a respeito de atualizações de pacotes
sudo apt-get upgrade -> Efetua o update dos pacotes
Para simplificar o processo, pode ser executado da seguinte forma:
sudo apt-get update; sudo apt-get upgrade
Para instalar novos pacotes, use o parâmetro Install
sudo apt-get install <pacote>
Exemplo:
sudo apt-get install apache2
Para pesquisar pacotes uso o comando apt-cache com o parâmetro search
sudo apt-cache search <termo>
Exemplo:
sudo apt-cache search mysql
Caso deseje saber mais sobre um pacote use o comando apt-cache com o parâmetro show
sudo apt-cache show <pacote>
Exemplo:
sudo apt-cache show apache2
quinta-feira, 19 de abril de 2012
Linux - Habilitar acesso SSH
De modo a liberar o acesso a uma máquina através de SSH basta 'startar' o serviço SSHD e desabilitar os serviços de controle de ips - iptables e ip6tables
sudo service sshd start
sudo service iptables stop
sudo service ip6tables stop
De modo a deixar o processo automático quando o SO for carregado:
** Executar os comandos como root **
chkconfig sshd on
chkconfig iptables off
chkconfig ip6tables off
sudo service sshd start
sudo service iptables stop
sudo service ip6tables stop
De modo a deixar o processo automático quando o SO for carregado:
** Executar os comandos como root **
chkconfig sshd on
chkconfig iptables off
chkconfig ip6tables off
MySQL - Alterar Senha
Para o usuário alterar a própria senha:
SET PASSWORD = PASSWORD('<senha>');
Para o administrador (root) alterar a senha de um usuário:
SET PASSWORD FOR '<usuario>'@'localhost' = PASSWORD('<senha>');
Via prompt:
mysqladmin -u <usuario> -h <host> password "<senha>"
SET PASSWORD = PASSWORD('<senha>');
Para o administrador (root) alterar a senha de um usuário:
SET PASSWORD FOR '<usuario>'@'localhost' = PASSWORD('<senha>');
Via prompt:
mysqladmin -u <usuario> -h <host> password "<senha>"
MySQL - Criando Usuarios
O passo-a-passo abaixo mostra como criar um usuário no MySQL, com um banco de dados (schema) próprio e também com acesso de leitura ao demais bancos (schemas) e acesso de Load de dados.
** Conectar como root **
** Criação de usuário Local e criação de um banco de dados (schema) para o usuário
CREATE DATABASE <usuario>;
CREATE USER '<usuario>'@'localhost' IDENTIFIED BY '<senha>';
GRANT ALL PRIVILEGES ON <banco>.* TO '<usuario>'@'localhost';
GRANT SELECT ON *.* TO '<usuario>'@'localhost';
GRANT FILE ON *.* TO '<usuario>'@'localhost';
** Conectar como root **
** Criação de usuário Local e criação de um banco de dados (schema) para o usuário
CREATE DATABASE <usuario>;
CREATE USER '<usuario>'@'localhost' IDENTIFIED BY '<senha>';
GRANT ALL PRIVILEGES ON <banco>.* TO '<usuario>'@'localhost';
GRANT SELECT ON *.* TO '<usuario>'@'localhost';
GRANT FILE ON *.* TO '<usuario>'@'localhost';
** Criação de usuário para acesso remoto de qualquer ponto (%) - substituir o 'localhost' por '%'
CREATE USER '<usuario>'@'%' IDENTIFIED BY '<senha>';
GRANT ALL PRIVILEGES ON <banco>.* TO '<usuario>'@'%';
GRANT SELECT ON *.* TO '<usuario>'@'%';
GRANT FILE ON *.* TO '<usuario>'@'%';
GRANT ALL PRIVILEGES ON <banco>.* TO '<usuario>'@'%';
GRANT SELECT ON *.* TO '<usuario>'@'%';
GRANT FILE ON *.* TO '<usuario>'@'%';
quarta-feira, 18 de abril de 2012
iMac - CentOS - Configuracao de Video
Passo a passo para instalar em uma maquina iMac com CentOS o adaptador de Video:
** O comandos dever ser executado de preferencia usando o usuario ROOT **
Pre-requisitos:
1) GCC (Gnu C)
2) Make
3) Kernel-devel
Passo-a-passo
1) Baixar o adaptador do site (normalmente da AMD - ver modelo do video)
2) Executar o adapatador (bash ./<arquivo>)
3) Verificar o log da instalacao (normalmente em /usr/share/ati/fglrx-install.log)
4) Editar o arquivo /etc/modprobe.d/blacklist.conf, incluindo no final do mesmo as linhas:
blacklist radeon
blacklist radeonhd
5) Executar o comando aticonfig para criar os parametros do X11/xorg.conf
aticonfig --initial
6) Editar o arquivo criado /etc/X11/xorg.conf incluindo no mesmo os seguintes parametros:
na secao "Device" incluir Option <tab> "SWCursor" "true"
7) Rebotar a maquina
8) Verificar se foi criado no menu System/Preferences link(s) para o aplicativo de controle de video
### ATENCAO ###
Estes passos deverao ser refeitos a toda atualizacao de Kernel
### ATENCAO ###
** O comandos dever ser executado de preferencia usando o usuario ROOT **
Pre-requisitos:
1) GCC (Gnu C)
2) Make
3) Kernel-devel
Passo-a-passo
1) Baixar o adaptador do site (normalmente da AMD - ver modelo do video)
2) Executar o adapatador (bash ./<arquivo>)
3) Verificar o log da instalacao (normalmente em /usr/share/ati/fglrx-install.log)
4) Editar o arquivo /etc/modprobe.d/blacklist.conf, incluindo no final do mesmo as linhas:
blacklist radeon
blacklist radeonhd
5) Executar o comando aticonfig para criar os parametros do X11/xorg.conf
aticonfig --initial
6) Editar o arquivo criado /etc/X11/xorg.conf incluindo no mesmo os seguintes parametros:
na secao "Device" incluir Option <tab> "SWCursor" "true"
7) Rebotar a maquina
8) Verificar se foi criado no menu System/Preferences link(s) para o aplicativo de controle de video
### ATENCAO ###
Estes passos deverao ser refeitos a toda atualizacao de Kernel
### ATENCAO ###
sexta-feira, 13 de abril de 2012
Fone de Ouvido USB + iMac com CentOS
No trabalho, uso um iMac com o CentOs como sistema operacional.
Precisei usar um fone de ouvido usb, já que o jack de fone de ouvido comum teima em não funcionar (ToDo: descobrir o que ocorre). Enfim, para isso fiz:
Localizei o módulo de som:
> lsmod | grep snd
snd_hda_intel
E desabilitei ele adicionando a linha "blacklist snd_hda_intel" ao fim do arquivo "/etc/modprobe.d/blacklist.conf"
> vi /etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
Depois... só reiniciar... ;D
Bash FOR + AWK
Esses tempos me deparei com a necessidade de concatenar diversos arquivos de um diretório, com base em um filtro, que estavam, originalmente, compactados, adicionando ao ínicio da linha um sequencial e ao fim da linha o nome do arquivo de origem e número da linha neste arquivo.
Para isso usei:
for i in $(ls arquivos/*.gz); do gzip -dc $i > $i.temp; awk 'substr($0, 34,6)=="201111"{print $0 "|" FILENAME "|" NR}' $i.temp;rm $i.temp; done | awk 'BEGIN{c=1}{printf ("%010d%s\n", c++, $0)}' > arquivo_concatenado.txt
Onde:
for i in $(ls arquivos/*.gz) #itens de (ls arquivos/*.gz) para a variavel i
do #início do laço
do #início do laço
gzip -dc $i > $i.temp; #descompacta o arquivo para nomedoarquivo.temp
awk 'substr($0, 34,6)=="201111"{print $0 "|" FILENAME "|" NR}' $i.temp; #com o awk filtra-se a linhas onde o substring atenda a condição desejada (substr($0, 34,6)=="201111") e imprime-se o conteúdo da linha + pipe + NOME DO ARQUIVO + pipe + NUMERO DA LINHA
rm $i.temp; #remove o arquivo temporario criado na descompactação
done < fim do laço
[]'s
Oracle - Problemas com o Start do Listener
Se o serviço de Listener do Oracle não estiver 'startando' uma boa forma de tentar descobrir o que acontece é usando o programa lsnrctl via prompt, e digitando o comando start. Ele exibirá então na tela, caso ocorra algum erro, os arquivos de parâmetros que estão sendo lidos para o start do Listener.
Em tempo, normalmente são os parâmetros configurados nos arquivos listener.ora, sqlnet.ora e tnsnames.ora que ficam dentro do subdiretório Network/Admin
Resumindo:
lsnrctl
start
Em tempo, normalmente são os parâmetros configurados nos arquivos listener.ora, sqlnet.ora e tnsnames.ora que ficam dentro do subdiretório Network/Admin
Resumindo:
lsnrctl
start
quinta-feira, 12 de abril de 2012
MAC - Variáveis de ambiente
se vc tiver erros do tipo: "library not found: .DYLIB" etc e tal... tente corrigir da seguinte forma:
1) Localize no seu MAC o .DYLIB que apareceu no erro;
2) digite "export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:[diretorio dylib]"
3) Tente de novo..
4) Funcionou? Coloque a linha no arquivo ~/.bash_profile.
Se não funcionar... well... funcionou para mim... vc vai ter que continuar investigando.
segunda-feira, 9 de abril de 2012
CentOS - HPFS+
Para habilitar a leitura e gravação de filesystens no formato HPFS+ (default do Mac OS X) basta instalar o pacote kmod-hfsplus do repositório Elrepo.org (http://elrepo.org/tiki/tiki-index.php)
Passo a passo (Instalação do repositório e do pacote) :
rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
yum install kmod-hfsplus
Passo a passo (Instalação do repositório e do pacote) :
rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm
yum install kmod-hfsplus
quinta-feira, 5 de abril de 2012
MYSQL - UPDATE com Tabelas Cruzadas
Exemplos de Update no MySQL com cruzamento de tabelas:
UPDATE product p, productPrice pp
SET pp.price = pp.price * 0.8
WHERE p.productId = pp.productId
AND p.dateCreated < '2004-01-01'
UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8
WHERE p.dateCreated < '2004-01-01'
UPDATE product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
SET p.deleted = 1
WHERE pp.productId IS null
UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8,
p.dateUpdate = CURDATE()
WHERE p.dateCreated < '2004-01-01'
UPDATE product p, productPrice pp
SET pp.price = pp.price * 0.8
WHERE p.productId = pp.productId
AND p.dateCreated < '2004-01-01'
UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8
WHERE p.dateCreated < '2004-01-01'
UPDATE product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
SET p.deleted = 1
WHERE pp.productId IS null
UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8,
p.dateUpdate = CURDATE()
WHERE p.dateCreated < '2004-01-01'
sexta-feira, 23 de março de 2012
MySQL - RowNum
O MySQL (até a versão 5.1, pelo menos) não possui uma coluna que retorna o número da linha, semelhante ao ROWNUM do Oracle. Para 'driblar' esta situação, podemos criar uma variável auxiliar, iniciando-a com zero e a cada linha retornada, acrescentar 1 a ela. Veja como:
Sintaxe 1:
SET @<variavel>:=0;
SELECT @<variavel>:=@<variavel>+1, <col-1>, <col-2>, ..., <col-n> from <tabela>;
Exemplo:
SET @rownum:=0;
SELECT @rownum:=@rownum+1 as rownum, t.* from tabelinha t;
Atenção:
A variável deve ser reiniciada (zerada) a cada execução do select !
Sintaxe 2:
Sintaxe 1:
SET @<variavel>:=0;
SELECT @<variavel>:=@<variavel>+1, <col-1>, <col-2>, ..., <col-n> from <tabela>;
Exemplo:
SET @rownum:=0;
SELECT @rownum:=@rownum+1 as rownum, t.* from tabelinha t;
Atenção:
A variável deve ser reiniciada (zerada) a cada execução do select !
Sintaxe 2:
SELECT @<variavel>:=@<variavel>+1, <col-1>, <col-2>, ..., <col-n> from <tabela>, (select @<variavel>:=0) r;
Exemplo:
SELECT @rownum:=@rownum+1 as rownum, t.* from tabelinha t, (select @rownum:=0) r;
MySQL - Incluir Sequence em Tabela
Para incluir um sequence (chave primária) em uma tabela já existente, basta alterar a tabela inserindo a coluna e adicionando a chave primária. Sintaxe:
alter table <database>.<tabela>
add <coluna> int unsigned not null auto_increment first,
add primary key (<coluna>);
Exemplo:
alter table tabelinha
add rec_id int unsigned not null auto_increment first,
add primary key (rec_id);
alter table <database>.<tabela>
add <coluna> int unsigned not null auto_increment first,
add primary key (<coluna>);
Exemplo:
alter table tabelinha
add rec_id int unsigned not null auto_increment first,
add primary key (rec_id);
quinta-feira, 22 de março de 2012
Linux - MySQL e AWK facilitam sua vida
Podemos usar comandos bash (script), awk e mysql juntos para de modo a facilitar o dia-a-dia do usuário.
Comandos bash, mysql e awk podem ser concatenados através de pipe '|'. Abaixo alguns exemplos:
- Efetuar o 'dump' de algumas tabelas de um banco de dados:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
2) O alias mysqlrk chama o mysql usando o comando gerado pelo bash:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
3) O resultado do mysql (relação de tabelas) é passado para o awk, que apenas imprime linha a linha (na verdade, este comando não se faz necessário, mas eu o coloquei como uma forma ilustrativa do que pode ser feito:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
4) A saída do awk é então enviada ao comando mysqldump que gera um dump das tabelas informadas, direcionando estas informações para o arquivo indicado:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
- Excluir tabelas de um banco de dados:
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha e terminada por old
Comandos bash, mysql e awk podem ser concatenados através de pipe '|'. Abaixo alguns exemplos:
- Efetuar o 'dump' de algumas tabelas de um banco de dados:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
2) O alias mysqlrk chama o mysql usando o comando gerado pelo bash:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
3) O resultado do mysql (relação de tabelas) é passado para o awk, que apenas imprime linha a linha (na verdade, este comando não se faz necessário, mas eu o coloquei como uma forma ilustrativa do que pode ser feito:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
4) A saída do awk é então enviada ao comando mysqldump que gera um dump das tabelas informadas, direcionando estas informações para o arquivo indicado:
echo "show tables like 'abobrinha%'" | mysqlrk -qs | awk '{print $1}' | mysqldump <db> -u <user> -p > <arquivo_dump>.sql
- Excluir tabelas de um banco de dados:
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
1) Cria um 'comando-mysql' usando o comando echo (bash), que irá gerar uma lista de todas as tabelas iniciadas por abobrinha e terminada por old
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
2) O alias mysqlrk chama o mysql usando o comando gerado pelo bash:
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
3) O resultado do mysql (relação de tabelas) é passado para o awk, que concatena a cada nome de tabela a instrução de exclusão da tabela (drop table):
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
4) A saída do awk é então enviada ao alias mysqldrk que executa as instruções recebidas, e grava o log no arquivo de log
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
3) O resultado do mysql (relação de tabelas) é passado para o awk, que concatena a cada nome de tabela a instrução de exclusão da tabela (drop table):
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
4) A saída do awk é então enviada ao alias mysqldrk que executa as instruções recebidas, e grava o log no arquivo de log
echo "show tables like 'abobrinha%old'" | mysqlrk -qs | awk '{print "drop table " $1 ";"}' | mysqlrk -q --verbose --verbose > mysql.log
Linux -Alias
Criar 'alias' (apelidos) para comandos mais usados é uma técnica bem legal no ambiente linux. Para tanto basta incluir o 'alias' no arquivo .bash_profile.
Sintaxe:
alias <apelido>='<comando com parâmetros>' (entre aspas simples)
Exemplos:
alias mysqlrk='mysql rkolbe -u rkolbe -p****' - Este comando cria um apelido chamado mysqlrk que na verdade se trata da chamada ao prompt mysql com alguns parâmetros, como banco/schema, usuário de acesso e senha.
Sintaxe:
alias <apelido>='<comando com parâmetros>' (entre aspas simples)
Exemplos:
alias mysqlrk='mysql rkolbe -u rkolbe -p****' - Este comando cria um apelido chamado mysqlrk que na verdade se trata da chamada ao prompt mysql com alguns parâmetros, como banco/schema, usuário de acesso e senha.
sexta-feira, 16 de março de 2012
Divx videos em Linux - Fedora e CentOS
Para assistir filmes no formato divx (xsub) no Linux, usar o programa console ffplay (instalado junto com o pacote ffmpeg)
Sintaxe: ffplay -sst <n> <arquivo.divx>, onde <n> é o número da legenda, sendo 0 a primeira
Exemplo: ffplay -sst 0 Planet.Hulk.divx
Sintaxe: ffplay -sst <n> <arquivo.divx>, onde <n> é o número da legenda, sendo 0 a primeira
Exemplo: ffplay -sst 0 Planet.Hulk.divx
Codecs de Video e Musica - Fedora e CentOS
Codecs MP3, DIVX e outros nas distribuicoes CentOS e Fedora (baseadas em Red Hat)
GStreamer - Codecs Vídeo e Áudio (http://gstreamer.freedesktop.org)
Módulos disponíveis no repositório RPMFusion (http://rpmfusion.org/ e http://repoforge.org/)
gstreamer-ffmpeg
gstreamer-plugins-bad
gstreamer-plugins-ugly
quinta-feira, 16 de fevereiro de 2012
Script MySQL via prompt
Para executar um script mysql via prompt:
mysql <database> -u <usuario> -p<senha> --verbose --verbose < <script> > <arquivo_log>, onde:
<database> database ou schema
<usuario> usuario mysql
<senha> senha do usuário
<script> arquivo com o(s) script(s) para execução
<arquivo_log> arquivo de log da execução do script
mysql <database> -u <usuario> -p<senha> --verbose --verbose < <script> > <arquivo_log>, onde:
<database> database ou schema
<usuario> usuario mysql
<senha> senha do usuário
<script> arquivo com o(s) script(s) para execução
<arquivo_log> arquivo de log da execução do script
Compactando e Descompactando Arquivos - GZIP
Compactar arquivo, substituindo o arquivo original pelo arquivo compactado:
gzip <arquivo>, onde <arquivo> pode inclusive aceitar wildcars como * e ? - Observação cada arquivo será compactado individualmente e o arquivo original será substituído por <arquivo>.gz
Compactação de arquivo sem a substituição do arquivo original (redirecionamento do arquivo compactado):
gzip -c <arquivo> > <arquivo_compactado>
Descompactação de arquivo, substituindo o arquivo original pelo arquivo descompactado:
gzip -d <arquivo>.gz, onde <arquivo>.gz pode inclusive aceitar wildcars como * e ? - Observação cada arquivo será descompactado individualmente e o arquivo original será substituído por <arquivo>
Descompactação de arquivo sem a substituição do arquivo original (redirecionamento do arquivo descompactado):
gzip -dc <arquivo>.gz > <arquivo_descompactado>
gzip <arquivo>, onde <arquivo> pode inclusive aceitar wildcars como * e ? - Observação cada arquivo será compactado individualmente e o arquivo original será substituído por <arquivo>.gz
Compactação de arquivo sem a substituição do arquivo original (redirecionamento do arquivo compactado):
gzip -c <arquivo> > <arquivo_compactado>
Descompactação de arquivo, substituindo o arquivo original pelo arquivo descompactado:
gzip -d <arquivo>.gz, onde <arquivo>.gz pode inclusive aceitar wildcars como * e ? - Observação cada arquivo será descompactado individualmente e o arquivo original será substituído por <arquivo>
Descompactação de arquivo sem a substituição do arquivo original (redirecionamento do arquivo descompactado):
gzip -dc <arquivo>.gz > <arquivo_descompactado>
quinta-feira, 26 de janeiro de 2012
Fedora e CentOS - Repositórios Úteis
Para as distribuições linux FEDORA um bom repositório de softwares é o RPM Fusion http://rpmfusion.org !
Para instalar o acesso ao repositório basta acessar a página http://rpmfusion.org/Configuration e clicar no link respectivo a versão do Fedora/CentOS que você está usando !
Outro lugar legar para procurar softwares é o ATprms - http://packages.atrpms.net/ . Neste você encontra os softwares distribuídos por versão e classificados de acordo com a 'estabilidade' do mesmo.
Um terceiro repositorio interessante (principalmente para o CentOS) e o RPMForge - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge e http://repoforge.org/
Existe ainda um outro repositório onde podem ser encontrados outros pacotes interessantes: El Repo - http://elrepo.org/tiki/tiki-index.php .
Para instalar o acesso ao repositório basta acessar a página http://rpmfusion.org/Configuration e clicar no link respectivo a versão do Fedora/CentOS que você está usando !
Outro lugar legar para procurar softwares é o ATprms - http://packages.atrpms.net/ . Neste você encontra os softwares distribuídos por versão e classificados de acordo com a 'estabilidade' do mesmo.
Um terceiro repositorio interessante (principalmente para o CentOS) e o RPMForge - http://wiki.centos.org/AdditionalResources/Repositories/RPMForge e http://repoforge.org/
Existe ainda um outro repositório onde podem ser encontrados outros pacotes interessantes: El Repo - http://elrepo.org/tiki/tiki-index.php .
Linux - Mapeamento de Unidades
Mapear Unidades (mount)
Mapear unidade de partição windows
1) Criar estrutura de diretório para fazer o mapeamento (p. ex: /windows/c)
2) Para mapeamento definitivo - alterar o arquivo /etc/fstab incluindo no final do mesmo a nova unidade a ser mapeada (ex./dev/sda1 /windows/C ntfs defaults 0 0)
Mapear unidade de rede
1) Criar estrutura de diretório para fazer o mapeamento (p. ex: /rede/transferencia)
2) Para mapeamento definitivo - alterar o arquivo /etc/fstab incluindo no final do mesmo a nova unidade a ser mapeada, usando como tipo cifs e passando como parametros username, password e dominio (//<servidor>/transferencia /rede/transferencia cifs dom=<dominio>,user=<usuario>,pass=<senha> 0 0)
Mapear unidade de partição windows
1) Criar estrutura de diretório para fazer o mapeamento (p. ex: /windows/c)
2) Para mapeamento definitivo - alterar o arquivo /etc/fstab incluindo no final do mesmo a nova unidade a ser mapeada (ex./dev/sda1 /windows/C ntfs defaults 0 0)
Mapear unidade de rede
1) Criar estrutura de diretório para fazer o mapeamento (p. ex: /rede/transferencia)
2) Para mapeamento definitivo - alterar o arquivo /etc/fstab incluindo no final do mesmo a nova unidade a ser mapeada, usando como tipo cifs e passando como parametros username, password e dominio (//<servidor>/transferencia /rede/transferencia cifs dom=<dominio>,user=<usuario>,pass=<senha> 0 0)
Ativar MySQL - no Linux
Após instalar o mysql deve-se executar o mysqladmin para configurar a senha de root conforme abaixo:
/usr/bin/mysqladmin -u root password <'senha'> (entre aspas simples)
/usr/bin/mysqladmin -u root -h localhost.localdomain password <'senha'> (entre aspas simples)
/usr/bin/mysqladmin -u root password <'senha'> (entre aspas simples)
/usr/bin/mysqladmin -u root -h localhost.localdomain password <'senha'> (entre aspas simples)
Linux - Comandos Úteis - Parte 1
ls -lhtr - Listar Arquivos em ordem decrescente de data
mv <arquivo/diretorio> - move ou renomeia <arquivo/diretorio>
split - divide arquivo em partes (exemplo: split --lines=50000 --numeric-suffixes --suffix-length=10 tap_nconc.txt CDRROAMING20110524)
wc -l <arquivo> - Conta a quantidade de linhas
wc -L <arquivo> - Número de bytes da maior linha
wc -c <arquivo> - Quantidade de bytes
wc -m <arquivo> Quantidade de caracters
df - Ver consumo do filesystem
mv <arquivo/diretorio> - move ou renomeia <arquivo/diretorio>
split - divide arquivo em partes (exemplo: split --lines=50000 --numeric-suffixes --suffix-length=10 tap_nconc.txt CDRROAMING20110524)
wc -l <arquivo> - Conta a quantidade de linhas
wc -L <arquivo> - Número de bytes da maior linha
wc -c <arquivo> - Quantidade de bytes
wc -m <arquivo> Quantidade de caracters
df - Ver consumo do filesystem
tar -xvzf <arquivo> - Descompactar (gzip+tar)
rm -fr <diretorio> - Apaga contéudo de diretório recursivo
rm -fr <diretorio> - Apaga contéudo de diretório recursivo
service <servico> [start|stop] - Inicia ou para serviços
chkconfig --level [012345] <servico> [off|on] - Configura o início automático de serviço
sha1sum <arquivo> - Gera hash de 160 bits
md5sum <arquivo> - Gera hash de 128 bits
dos2unix - converte arquivos dos para unix
unix2dos - converte arquivos unix para dos
wget - efetua download de link na internet
chkconfig --level [012345] <servico> [off|on] - Configura o início automático de serviço
sha1sum <arquivo> - Gera hash de 160 bits
md5sum <arquivo> - Gera hash de 128 bits
dos2unix - converte arquivos dos para unix
unix2dos - converte arquivos unix para dos
wget - efetua download de link na internet
Dicas de TI - O Começo
Com mais de 20 anos de experiência em Desenvolvimento de Sistemas de TI, resolvi começar este blog incluindo diversas dicas - que na verdade são lembretes para mim mesmo - em TI. Estas dicas vão desde comandos básicos em sistemas operacionais (Linux, Windows) até alguns truques que precisei usar para contornar situações diversas.
Assinar:
Comentários (Atom)