Skip to main content

Shell ;)

Snippets de script

Verificar dns, porta e serviço

nslookup teste.anatramg.com.br
nmap -p 80 teste.anatramg.com.br
telnet teste.anatramg.com.br 80
curl teste.anatramg.com.br
dig teste.antramg.com.br A

Copiar arquivos inclusive arquivos ocultos

cp -r sdtm-site/. .

Agrupar, compactar, descompatar

Agrupar e compactar

vps:~# ...

Descompactar

vps:~# ...

Pull, Env, Build and Deploy

Exemplo validando argumento

pull-env-build-deploy-v1.sh
#!/usr/bin/env bash

# Validate
ENV=$1;
if [ "$ENV" = "-dev" ] || [ "$ENV" = "-prod" ]; then
cp .env$ENV .env;
else
echo "Environment not found (-dev|-prod) :("; exit;
fi

# Functions
pull() {
echo "pull ...";
git pull;
}

env() {
echo "env ...";
cp .env$ENV .env;
}

build() {
echo "build ...";
docker-compose build --pull;
}

deploy() {
echo "deploy ...";
docker-compose up -d;
}

# Init
pull;
env;
build;
deploy;

Exemplo parametro interativo com valor default

pull-env-build-deploy-v2.sh
#!/usr/bin/env bash

pull() {
echo "pull ...";
git pull;
}

env() {
echo "env ...";
cp .env$ENV .env;
}

build() {
echo "build ...";
docker-compose build --pull;
}

deploy() {
echo "deploy ...";
docker-compose up -d;
}

$input
choice() {
echo ${QUESTION[1]};
read input;
if [ -z $input ] && [ ! -z ${QUESTION[2]} ]; then
input=${QUESTION[2]}
fi
}

apply() {
while :
do
case $input in
${OPTION1[0]}) echo ${OPTION1[1]}; ${OPTION1[2]}; echo ""; break;
;;
${OPTION2[0]}) echo ${OPTION2[1]}; ${OPTION2[2]}; echo ""; break;
;;
*) choice; echo "";
;;
esac
done
}

QUESTION=("", "Escolha (y|n)" "y")
OPTION1=("[yY]" "Escolheu y" "pull")
OPTION2=("[nN]" "Escolheu n" "")
func_while;

QUESTION=("", "Ambiente (dev|prod)" "dev")
OPTION1=("dev" "Escolheu dev" "build")
OPTION2=("prod" "Escolheu prod" "deploy")
func_while;

Tips

Importa variáveis de ambiente usando arquivo externo

if [ -f .env ]
then
export $(cat .env | sed 's/#.*//g' | xargs)
fi