Arquivos da categoria: source

Comandos Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Instalação rápida:
curl -fsSL https://get.docker.com | sh;
# Execução:
docker run -d -p 8008:80 -v /home/USUARIO/ssp/projetos/:/var/www/ NOMEIMAGEM /usr/sbin/apachectl -D FOREGROUND
# múltiplas portas de esculta:
docker run -d -p 8008:80 -p 82:82 -v /home/USUARIO/ssp/projetos/:/var/www/ NOMEIMAGEM /usr/sbin/apachectl -D FOREGROUND
 
# Rodar script após executar o docker:
# modo interativo
docker exec -i 7e79e9315e4f /meuScript.sh
# modo em background:
docker exec -d 7e79e9315e4f /meuScript.sh
 
# Para docker:
sudo docker stop ID-Container
 
# Apagar todas as imagens:
docker rmi $(docker images -q)
 
# Apagar todas as imagens que já foram para execução (docker ps -a)
docker rm $(docker ps -aq)

Script para baixar todas braches de um projetos – Shell Script

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
#!/bin/bash
indexRegister=0
origin="origin"
dirWork=$1
totalRegister=""
 
if [ -z $dirWork ];then
    echo "Informe o diretorio do projeto com Git inicializado"
    echo "Exemplo: /var/www/meuprojeto.com/"
    exit
fi
 
cd $dirWork
 
totalRegister=$(echo -n $(( $(git ls-remote | grep "refs/heads" | wc -l))))
for i in $(git ls-remote | awk '{print $2}' | grep "refs/heads" | sed 's/refs\/heads\///g')
do
    #if [ $indexRegister -gt 0 ];then
      git fetch $origin $i:$i > /dev/null 2>&1
      if [ $? -eq 0 ];then
        echo "$i, OK!"
      else
        echo "Algo deu errado ao baixar $i - Isso normalmente ocorre se esta branch já existir no seu local."
      fi
    #fi
 
    echo "$(( $(( indexRegister=indexRegister+1 ))*100/$totalRegister ))% concluido"
done

Alias para disponibilizar o comando no sistema:

1
sudo ln -s /home/USUARIO/allBranches.sh /usr/bin/allBranches

Agora é só chamar o comando de forma global:

1
$ allBranches /var/www/meuprojeto.com/

Permissão adequada em aplicações de servidor Apache2

1
2
3
4
5
6
7
8
    # Configuração geral de dono e grupo:
     chown -R root:www-data /var/www
    # Permissão geral de para dono, grupo e outros:
     chmod -R 744 /var/www/
    # Reconfigura as permissões apenas de grupo para diretórios (acesso Apache - www-data):
     find /var/www/ -type d -exec chmod g=rx {} ";"
    # Reconfigura permissões apenas para diretórios de uploads:
     find /var/www/ -type d -iname "upload*" -exec chmod -R g=wrx {} ";"

Amazon AWS LAMBDA – Ligar apenas algumas instâncias automaticamente – Python 2.7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# -*- coding: utf-8 -*-
"""
Script para ligar instancias em Amazon AWS EC2
"""
# webserve SDK AWS para Python
import boto3
# Instancia o tipo de serviço que será consulmido da importação boto3
client=boto3.client('ec2')
 
# Função manipuladora - É uma espécie de int main, como em C++
def lambda_handler(event, context):
 
    # Instancia do método que será usada. Neste caso o método describe_instances() mapeia as instâncias existentes
    response=client.describe_instances()
 
    # Array contendo somente as maquinas que serão ligadas
    onlyInstances=["i-00f0a3dfas654df", "i-00f0a31ad0lq154df", "i-11156456as654df"]
 
    # Laço no objeto response para Reservations
    for reservation in response["Reservations"]:
 
        # Laço no objeto reservation para Instances
        for instance in reservation["Instances"]:
 
            # Observe o formato: id deve ser um Array [], a ser passado para o método client.start_instances(InstanceIds=[...])
            id=[instance["InstanceId"]]
 
            # Verifica se registro contém no array de exceção.
            if instance["InstanceId"] in onlyInstances:
                print(instance["InstanceId"] + " starting")
                client.start_instances(InstanceIds=id)
            else:
                print(instance["InstanceId"] + " in exception, not starting.")
 
 
    return "Fim da execucao."

Amazon AWS LAMBDA – Desligar instâncias automaticamente – Python 2.7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# -*- coding: utf-8 -*-
"""
Script para ligar instancias em Amazon AWS EC2
"""
# webserve SDK AWS para Python
import boto3
# Instancia o tipo de serviço que será consulmido da importação boto3
client=boto3.client('ec2')
 
# Função manipuladora - É uma espécie de int main, como em C++
def lambda_handler(event, context):
 
    # Instancia do método que será usada. Neste caso o método describe_instances() mapeia as instâncias existentes
    response=client.describe_instances()
 
    # Array de exceção de máquinas que não serão ligadas
    exceptionsInstances=["i-00f0a3dfasa32s1df654df"]
 
    # Laço no objeto response para Reservations
    for reservation in response["Reservations"]:
 
        # Laço no objeto reservation para Instances
        for instance in reservation["Instances"]:
 
            # Observe o formato: id deve ser um Array [], a ser passado para o método client.stop_instances(InstanceIds=[...])
            id=[instance["InstanceId"]]
 
            # Verifica se registro contém no array de exceção.
            if instance["InstanceId"] in exceptionsInstances:
                print(instance["InstanceId"] + " in exception, not stopping.")
            else:
                print(instance["InstanceId"] + " stopping")
                client.stop_instances(InstanceIds=id)                    
 
 
    return "Fim da execucao."

Exportar múltiplos bancos de dados sql | Mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
destino="./databases"
usuario="root"
echo "Informe a senha do usuário $usuario para Mysql:"
read senha
log="$destino/erro.log"
 
if [ -z $senha ]; then
        echo "Define a senha do Root para Mysql"
        exit
else
        echo "Testando senha..."
        mysql -uroot -p$senha -e "show databases;" > /dev/null 2>&1
        if [ $? -ne 0 ];then
                echo "Nao pode conectar ao Mysql com password informado."
                exit
        fi
        echo "Prosseguindo..."
fi
 
# Cria diretório para armazenamento dos bancos se não existe
if [ ! -d $destino ];then
    mkdir $destino
fi
 
for i in $(mysql -u$usuario -p$senha -e "show databases")
do
        #echo "Executando dump do banco de dados $i"
        mysqldump -u$usuario -p$senha $i > $destino/$i > /dev/null 2>&1
        if [ $? -ne 0 ];then
                echo "Erro ao exportar $i"
                echo "Erro ao exportar $i" >> $log
        fi
        echo "Banco de dados $i exportado."
done
 
echo "Sucesso!"
echo "Verifique o diretório $destino"

Importar múltiplos bancos de dados sql | Mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
origem="diretorio_dos_arquivos_sql"
senha="";
 
if [ -z $senha ]; then
        echo "Define a senha do Root para Mysql"
        exit
else
        echo "Testando senha..."
        mysql -uroot -p$senha -e "show databases;" > /dev/null 2>&1
        if [ $? -ne 0 ];then
                echo "Nao pode conectar ao Mysql com password informado."
                exit
        fi
        echo "Prosseguindo..."
fi
 
for i in $(ls $origem)
do
        echo "Criando banco de dados $i"
        mysql -uroot -p$senha -e "CREATE DATABASE $i CHARACTER SET utf8 COLLATE utf8_general_ci;"
        echo "Importando banco de dados $i"
        mysql -uroot -p$senha -e "use $i ; source $origem/$i;"
done
echo "Terminado."