Mostrando postagens com marcador scripts_administrativos. Mostrar todas as postagens
Mostrando postagens com marcador scripts_administrativos. Mostrar todas as postagens

sexta-feira, 10 de junho de 2011

Trocar UID proprietário de arquivos e pastas em determinados diretórios por um outro UID para ser o novo proprietário desses arquivos encontrados

Pessoal o script abaixo foi feito para alterar o dono de arquivos e pastas em determinados diretórios, o mesmo sairá recursivamente trocando o UID dos arquivos e pastas encontrados, a partir do UID antigo, por um outro UID, definido por você, para que esse seja o novo dono do arquivos e pastas no diretório.

OBS.: UID é uma identificação exclusiva de qualquer usuário no linux, para verificar o id de algum usuário digite:

# id nomeDoUsuário
root@feigt:/# id leonardoconrado
uid=1018(leonardoconrado) gid=100(users) groups=100(users)


Exemplo 01: Mudará o dono de todos arquivos e pastas do diretório / que tenham como UID 502 e irá "setar" ou configurar um novo UID dono desses arquivos que será UID 512 e irá também gerar um arquivo de log em /root/debug.txt, para que possamos ver se aconteceu alguma falha na tentativa de troca desses UIDs nos arquivos encontrados, ele também contará quantos arquivos foram encontrados com o velho UID, abaixo script:

#!/bin/bash

# Mudar UID proprietário de arquivos e pastas
# para um novo UID ser o proprietário em determinados
# diretórios
# Por Leonardo Couto Conrado
# Em 06.10.2011 

counter=0

# Encontre em / os arquivos que tenha UID igual à 502
for i in $( find / -uid 502 2>> /dev/null ); do
        echo $i

# Mude o dono desses arquivos para UID 512
        chown -v 512 $i >> /root/debug.txt

# Conte cada arquivo encontrado
        counter=`echo "$counter+1"|bc`
done
echo $counter

Exemplo 02: Mudará o dono de todos arquivos e pastas do diretório /oracle que tenham como UID 501 e irá "setar" ou configurar um novo UID dono desses arquivos que será UID 511 e irá também gerar um arquivo de log em /root/debug.txt, para que possamos ver se aconteceu alguma falha na tentativa de troca desses UIDs nos arquivos encontrados, ele também contará quantos arquivos foram encontrados com o velho UID, abaixo script:

#!/bin/bash

# Mudar UID proprietário de arquivos e pastas
# para um novo UID ser o proprietário em determinados
# diretórios
# Por Leonardo Couto Conrado
# Em 06.10.2011 

counter=0

# Encontre em / os arquivos que tenha UID igual à 501
for i in $( find /oracle -uid 501 2>> /dev/null ); do
        echo $i

# Mude o dono desses arquivos para UID 511
        chown -v 511 $i >> /root/debug.txt

# Conte cada arquivo encontrado
        counter=`echo "$counter+1"|bc`
done
echo $counter

quarta-feira, 10 de novembro de 2010

Shell scripting

Shell script

Shell script é uma linguagem de script usada em vários sistemas operacionais derivados do UNIX. O shell script é batizado com este nome devido a ele ser um arquivo em texto plano, ou seja, legível para uma pessoa interpretar as sua linhas de comandos que segue a forma de um script, ou seja, intruções são executadas passo à passo além disso este arquivo é colocado como um tipo de arquivo executável, e o Shell é o interpretador de comandos dos sistemas Unix-Like. O shell é aquele que aparece logo após digitar-se a senha do usuário e entrar na famosa tela preta que espera ansiosamente por algum comando para ele poder executar. Essa é a sua função: esperar e executar. Cada comando digitado é lido, verificado, interpretado e enviado ao sistema operacional para ser de fato executado. Um exemplo de interpretador de comandos é o bash, usado na grande maioria das distribuições GNU/Linux. O shell é a ligação entre o usuário e o kernel. O kernel é quem acessa os equipamentos(hardware) da máquina, como disco rígido, placa de vídeo e modem.

A maior parte dos usuários classificam shell script como uma linguagem de fácil aprendizado. O primeiro passo é saber o que se deseja fazer, então, ver qual o código que executa este comando em shell e aí criar, basta escrever o código em algum editor de texto e salvar. Depois de salvo você deve coloca-lo como arquivo executável fazendo desta forma:

chmod +x "Nome do arquivo, sem aspas"

Depois de coloca-lo como executável, executamos o arquivo, dessa forma:

./"Nome do arquivo, sem aspas"

Para exibir um manual do bash ou mesmo do comando 'chmod', digite na linha de comando
man bash
ou
man chmod


É possível executar o arquivo mesmo sem modificar a permissão de execução, por exemplo, se for um arquivo escrito para ser executado pelo bash, usar:


sh ./"Nome do arquivo, sem aspas"

FONTE: http://pt.wikipedia.org/wiki/Shell_script


Abaixo temos alguns links para o download de livros sobre shell scripting que serão bastante úteis para aqueles que querem aprender ou aprimorar o seu conhecimento sobre shell script:

- http://tips-linux.net/en/content/pro-bash-programming
- http://tips-linux.net/en/content/expert-shell-scripting
- http://tips-linux.net/en/content/beginning-linux-command-line
- http://tips-linux.net/en/content/bash-pocket-reference
- http://tips-linux.net/en/content/linux-command-line-and-shell-scripting-bible

Agradecimento ao tips-linux.net : Compartilhando conhecimento; Neste site você encontrará dicas, e-books, tutoriais, Linux Commands, Softwares, Drivers e muito mais spbre o mundo Linux.

quinta-feira, 20 de maio de 2010

Shell script - backup de seus bancos de dados Mysql em servidores remotos

Utilize o usuário root para o procedimento abaixo ou crie um usuário backup com uma senha forte, pois, iremos colocar senhas de BDs nos arquivos shell script, logo, por motivo de segurança é aconselhado realizar esta estratégia.

1 - Crie a seguinte estrutura de pastas no seu unix-like(Substitua o diretório sistema_mapas pelo o nome do seu sistema que deseja realizar o back-up):
# mkdir -p /backups_BDs_mysql/sistema_mapas/bkps

--->Somente o usuário root ou backup terá acesso ao conjunto de pastas por motivos de segurança, , então der o comando chmod -r:
# chmod -R 700 /backups_BDs_mysql/sistema_mapas/bkps

2 -Após isto, crie o seguinte arquivo shell script em /backups_BDs_mysql/sistema_mapas/:
# touch /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

# chmod 755 /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

# vi /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

---> Insira o conteúdo abaixo no shell script:

#!/bin/bash

# Bkp banco mysql
# Por Leonardo Couto Conrado
# Em 19.10.2009

now=$(date +%Y%m%d)
clockNow=$(date +%d.%m.%Y-%H:%M)
nomeFile=$now.mapas.sql
pathBkp="/backups_BDs_mysql/sistema_mapas"

`mysqldump -u usuarioComAcessoAoBanco -psenhaDoBanco -h nomeOuIPDoServidorDeBanco --databases nomeDoBanco > $pathBkpMapas/bkps/$nomeFile`
`tar --absolute-names -czf $pathBkp/bkps/$nomeFile.tar.gz $pathBkpMapas/bkps/$nomeFile`
`rm -f $pathBkp/bkps/$nomeFile`

if [ $? -ne 0 ];
then
echo "$clockNow - $0, possiveis erros na linha acima ^" >>  /var/log/backups_BDs_mysql.log
else
echo "$clockNow - $0, possiveis erros na linha acima ^" >>  /var/log/backups_BDs_mysql.log
fi


3 - Crie os arquivos de log em /var/log/:
# touch /var/log/backups_BDs_mysql.log

4 - Teste executando o shell script:
# /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh

---> Se estiver tudo ok será gerado com arquivo tallbar comprimido(tar.gz) em /backups_BDs_mysql/sistema_mapas/bkps/ com o backup do banco, caso contrário verifique o problema provavelmente usuário, senha, nome do banco inserido incorreto no script...

5 - Para ser executado todos os dias coloque a tarefa agenda no cron, aqui no trabalho rodo o backup todos dias às 23:58 da noite:
# crontab -e -u root

---> Insira a linha abaixo para programar o backup:
58 23 * * * sh /backups_BDs_mysql/sistema_mapas/bkp_bd_mapas.sh 2>> /var/log/backups_BDs_mysql.log

---> Salve e saia do crontab

Pronto! Você pode utilizar este esquema de backup para outros sistemas no seu ambiente, este foi o exemplo para um único sistema aqui onde trabalho, agora só depende da sua criatividade!

Seguidores