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