Condicional [RESOLVIDO]

1. Condicional [RESOLVIDO]

Bruno Raphael
brcmesquita

(usa elementary OS)

Enviado em 22/02/2017 - 15:58h

Olá novamente!

Estou querendo criar um Shell Script onde:

1. Verifica se uma pasta já existe na raiz, caso não exista, ele criará uma.

1.a. Caso a pasta já exista, ele deve apagar seu conteúdo.

2. Quando a pasta for criada, ou após esvaziar, ele faz o wget pra pegar os novos arquivos.

3. Executa os arquivos baixados.

Estou na dúvida das condicionais, como fazer. Sei do if, then, else... mas e os parâmetros para checar a pasta? Alguém saberia montar um script de exemplo neste modelo acima?


  


2. MELHOR RESPOSTA

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 22/02/2017 - 20:04h

Mauriciodez escreveu:

brcmesquita escreveu:
Estou na dúvida das condicionais, como fazer. Sei do if, then, else... mas e os parâmetros para checar a pasta?


#!/bin/bash
dir=/caminho/da/pasta
if [ -e "$dir" ] ; then
echo "o diretório existe"
else
echo "o diretório não existe"
fi

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"




Olá,
+1
fiz pequenas modificações em cima do script do @Mauriciodez



#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

dir=/caminho/da/pasta
if [ -d "$dir" ]
then
echo -e "o diretório $dir existe \n vamos apagar o conteúdo"
rm -rf $dir/*
#Quando a pasta for criada, ou após esvaziar, ele faz o wget pra pegar os novos arquivos.
wget aqui
else
echo -e "o diretório $dir não existe \n vamos cria-lo "
mkdir $dir
#Quando a pasta for criada, ou após esvaziar, ele faz o wget pra pegar os novos arquivos.
wget aqui
fi
exit



3. Executa os arquivos baixados.
obs: não sei qual extensão são os arquivos para poder executar mas isso você pode colocar fácil no script.

---> Márcio M M <---

3. Re: Condicional

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/02/2017 - 16:01h

Já que você está querendo fazer algo assim, mãos à obra!

Quando você tiver alguma dúvida específica, faça a pergunta específica aqui.


4. Re: Condicional [RESOLVIDO]

Bruno Raphael
brcmesquita

(usa elementary OS)

Enviado em 22/02/2017 - 16:47h

paulo1205 escreveu:

Já que você está querendo fazer algo assim, mãos à obra!

Quando você tiver alguma dúvida específica, faça a pergunta específica aqui.


Obrigado pela dica!


5. Re: Condicional [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 22/02/2017 - 17:18h

brcmesquita escreveu:
Estou na dúvida das condicionais, como fazer. Sei do if, then, else... mas e os parâmetros para checar a pasta?


#!/bin/bash
dir=/caminho/da/pasta
if [ -e "$dir" ] ; then
echo "o diretório existe"
else
echo "o diretório não existe"
fi

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


6. Re: Condicional

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/02/2017 - 17:21h

Dê uma olhada na manpage do comando test, também conhecido como “[”. Ali se indicam as operações que você pode fazer para testar arquivos e diretórios.


7. Os comandos

Bruno Raphael
brcmesquita

(usa elementary OS)

Enviado em 23/02/2017 - 17:21h

Eu preciso rodar alguns comandos para atualizar algumas tabelas do MySQL em um servidor em produção, mas para isto, eu preciso baixar os arquivos de novo, pois eles atualizam com uma certa frequência no servidor.

Para organização, decidi colocar tudo em uma pasta no / (raiz).

Então, os comando que tenho que fazer são (exemplos):

# Script de Atualização de Tabelas

# 1. Roda script para ver se existe a pasta
<script de verificação>

# 2. Início da condicional
# 3.a (then) Se a pasta existir, então apagar seu conteúdo.
sudo rm /atualiza_tabelas/*

# 3.b Baixa arquivos atualizados
wget http://servidor/arquivo1
wget http://servidor/arquivo2

# 4.a (else) Se a pasta não existir, ele cria uma nova.
mkdir /atualiza_tabelas/

# 4.b Baixa os arquivos atualizados
wget http://servidor/arquivo1
wget http://servidor/arquivo2

# Roda os arquivos (scripts baixados)
/atualiza_tabelas/arquivo1 <IP> arquivo2

# Pensei em algo agora, que seria interessante o script chamar uma tela para receber um IP digitado pelo usuário.
# Depois o IP seria incluído no script e ele rodaria normal, sem ter que modificar o script ou algo do tipo.


8. Re: Condicional [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 23/02/2017 - 17:43h

Olá,
eu aconselho você a dar uma estudada nas funções pois o exemplo já foi dado
normalmente nós ajudamos quando o usuário inicia seu projeto.
com esse exemplo você consegue fazer muita coisa
quando eu comecei foi seguindo um exemplo de um script do @tonyhts com o exemplo dele eu fiz mais de mil scripts.

---> Márcio M M <---


9. Re: Condicional

Paulo
paulo1205

(usa Ubuntu)

Enviado em 23/02/2017 - 18:39h

Note que você roda os wgets tanto se a condição for verdadeira quanto se ela for falsa. Como esses comandos são rodados em todos os casos possíveis, ele pode ser movido para fora (i.e. para após) do bloco if/fi.

Na verdade, você poderia fazer o que quer sem usar if.

#!/bin/bash

dir="/some_name"
removable_dir="/some_trash_name.$$"

mv "$dir" "$removable_dir" && rm -Rf "$removable_dir"
mkdir -p "$dir" &&
cd "$dir" &&
wget ... &&
wget ... &&
roda_script_de_importacao_do_banco



10. Peços desculpas

Bruno Raphael
brcmesquita

(usa elementary OS)

Enviado em 24/02/2017 - 08:52h

Galera,

Peço desculpas, não me julguem mal, talvez eu não esteja sabendo me expressar.

Agradeço pela parcitipação de todos e pela colaboração.

A ideia não é "vocês fazerem o meu trabalho", mas "ver como vocês fazem", para aprender a fazer outros, e preciso fazer muitos, para automatizar, não apenas para mim, mas para os meus colegas de trabalho que não manjam nada de Linux.

Mas foi como foi dito anteriormente, não preciso de uma condicional para criar este script, basta eu chamar um rm antes e fazer os wget tudo do zero.
Mas o que eu realmente queria aprender, era fazer a condicional (olhem o título do post) e os testes de verificação.

Obrigado aos que ajudaram, os que apenas comentaram e os que apenas olharam.
E espero que este post ajude alguém no futuro...

Abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts