Sintaxe - SHEL SCRIPT [RESOLVIDO]

1. Sintaxe - SHEL SCRIPT [RESOLVIDO]

Fernanda Montovani Albuquerk
fernanda_mon

(usa Debian)

Enviado em 11/05/2017 - 09:10h

Bom dia Pessoal,

preciso de script, mas não sei a sintaxe, alguem pode me ajudar?
a logica seria assim
Inicia script;
acessa o dir cd /backup - ou variavel para o dir;
listar dir - ls;
compara data de arquivos: se data arquivo = a data atual , faça;
copia /backup/arquivo* para /hd_externa;
senao
se for menor mais que 2 dias da data atual faça
remove /backup/arquivo*

Obs: Estou a alguns dias estudando o shell script, mas pesquisei e não achei como faço a sintaxe
do se comparando a data do arquivo com a data atual, preciso de uma ajudinha
Obrigada


  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 26/06/2017 - 19:47h

da uma olhada nesse script

#/bin/bash
arquivo="caminho/do/arquivo"
externo="caminho/do/backup/"
dt_arq=$(date -r $arquivo +%y%m%d)
dt_atual=$(date +%y%m%d)
data=$(( $dt_atual - $dt_arq ))
if [ $data -eq 0 ]; then
cp $arquivo $externo
elif [ $data -ge 3 ]; then
rm $arquivo
fi


ele faz exatamente o que vc quer ... pega a data do arquivo de backup e compara com a de hoje ... se for igual copia para para o local ( externo ), se a data do arquivo for maior ou igual a 3 ele remove o arquivo


------------------------------------------| Linux User #621728 |-----------------------------------------
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"
------------------------------------------| Linux User #621728 |-----------------------------------------


3. Re: Sintaxe - SHEL SCRIPT [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 11/05/2017 - 09:14h

É interessante você postar o código que já deu início para que aí possamos ajudar.
_________________________
"GNU/Linux for human beings."

ºvº "Software Livre: não é pelo dinheiro.
/( _ ) É uma questão de consciência."
^ ^




4. Re: Sintaxe - SHEL SCRIPT [RESOLVIDO]

Fernanda Montovani Albuquerk
fernanda_mon

(usa Debian)

Enviado em 11/05/2017 - 17:36h

Oie, segue abaixo o meu script, mas ele não esta na logica que descrevi acima.

#!/bin/bash

echo "REALIZANDO POLITICA DE CONTENCAO"
echo "/dados/rh/Garish"
echo "/dados/rh/MultiBanco"

######## POLITICAS DE CONTECAO DOS DIRETORIOS ###########
find /dados/rh/Garish -mtime +3 -exec rm {} \;
find /dados/rh/MultiBanco -mtime +3 -exec rm {} \;

echo "FINALIZADO A POLITICA DE CONTENCAO"
echo " RSYNC INICIANDO A COPIA DE /DADOS PARA /BACKUPS"

mv /root/backups/scripts/rsync-bancos.sh /root/backups/scripts/rsync-bancos.old

echo "##### BANCO GARISH RH ###########"
rsync -av /dados/rh/Garish/* /backup/rh/Garish/

echo "##### BANCO MULTIBANCO RH #########"
rsync -av /dados/rh/MultiBanco/* /backup/rh/MultiBanco

mv /root/backups/scripts/rsync-bancos.old /root/backups/scripts/rsync-bancos.sh
echo "FINALIZANDO A COPIA DE /DADOS PARA /BACKUPS"

echo "INICIANDO A POLITICA DE CONTENCAO DO DIR /BACKUPS"
######## POLITICAS DE CONTENCAO DOS DIRETORIOS ##########
find /backup/rh/Garish -mtime +2 -exec rm {} \;
find /backup/rh/MultiBanco -mtime +2 -exec rm {} \;

echo " FINALIZANDO A POLITICA DE CONTECAO DO DIR BACKUPS "



5. Re: Sintaxe - SHEL SCRIPT [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/06/2017 - 16:34h

fernanda_mon escreveu:

Bom dia Pessoal,

preciso de script, mas não sei a sintaxe, alguem pode me ajudar?
a logica seria assim
Inicia script;
acessa o dir cd /backup - ou variavel para o dir;
listar dir - ls;
compara data de arquivos: se data arquivo = a data atual , faça;
copia /backup/arquivo* para /hd_externa;
senao
se for menor mais que 2 dias da data atual faça
remove /backup/arquivo*

Obs: Estou a alguns dias estudando o shell script, mas pesquisei e não achei como faço a sintaxe
do se comparando a data do arquivo com a data atual, preciso de uma ajudinha
Obrigada


Basicamente usar o rsync e o cron.

Falta informação de origem e destino para fazer o script.

1- O destino é um HD ou outro PC da rede?
2- Qual o tipo do servidor de arquivo?
3- Quais os tipos de arquivos?
4- Qual o formato que você deseja para o arquivo de backup final (sugiro o xz)?
5- Quais as configurações de origem e destino (ips, pasta de rede, gatew.....)?



6. Re: Sintaxe - SHEL SCRIPT [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/06/2017 - 16:40h

Essas pastas esta no servidor ou na rede?

/dados/rh/Garish

/dados/rh/MultiBanco

/backup/rh/Garish/

/backup/rh/MultiBanco



Qual o conteúdo do arquivo?

cat /root/backups/scripts/rsync-bancos.sh




7. Tópico: Sintaxe - SHEL SCRIPT

Fernanda Montovani Albuquerk
fernanda_mon

(usa Debian)

Enviado em 26/06/2017 - 17:15h

Oie obrigada pela atenção :)

cat /root/backups/scripts/rsync-bancos.sh

# cat /root/backups/scripts/rsync-bancos.sh
#!/bin/bash
# Desenvolvido por Joao Eduardo
#

echo "REALIZANDO POLITICA DE CONTENCAO"
echo "/dados/rh/Garish"
echo "/dados/rh/MultiBanco"

######## POLITICAS DE CONTECAO DOS DIRETORIOS ###########

echo "FINALIZADO A POLITICA DE CONTENCAO"
echo " RSYNC INICIANDO A COPIA DE /DADOS PARA /BACKUPS"

echo "##### BANCO GARISH RH ###########"
rsync -av /dados/rh/Garish/* /backup/rh/Garish/

echo "##### BANCO MULTIBANCO RH #########"
rsync -av /dados/rh/MultiBanco/* /backup/rh/MultiBanco

echo "FINALIZANDO A COPIA DE /DADOS PARA /BACKUPS"

echo "INICIANDO A POLITICA DE CONTENCAO DO DIR /BACKUPS"
######## POLITICAS DE CONTENCAO DOS DIRETORIOS ##########

find /backup/rh/Garish -mtime +1 -exec rm {} \;
find /backup/rh/MultiBanco -mtime +1 -exec rm {} \;

echo " FINALIZANDO A POLITICA DE CONTECAO DO DIR BACKUPS "

os diretorios /dados/rh/Garish, /dados/rh/MultiBanco, /backup/rh/Garish/ , /backup/rh/MultiBanco dentro do proprio servidor

" dados " é um diretorio geral e o "backup" é onde quero que fique apenas o da data atual








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts