jocajuni
(usa Debian)
Enviado em 05/08/2013 - 19:32h
alexfurlan escreveu:
Meu caso é muito parecido.
Tenho um servidor de backup. Os arquivos são enviados pelos clientes em formato "backup_unidade.39690970.dia.030820132300.sql.tar.bz2". O número 39690970 é o código da unidade. Tenho um arquivo txt com todos os códigos e nome das unidades (um por linha). Eu preciso de um script que verifica se o código tal já foi criado a pasta com o nome da unidade, caso não tenha sido criado, ele cria a pasta. Nas duas opções, o arquivo "backup_unidade.39690970.dia.030820132300.sql.tar.bz2" deve ser movido para a referida pasta. A pasta deve manter o padrão "/nome da unidade/backupatual"
Preciso:
1)O servidor recebe o arquivo "backup_unidade.39690970.dia.030820132300.sql.tar.bz2";
2)O script vai comparar o código 39690970 dentro do arquivo txt (código unidade;nome unidade);
3)Se a pasta não existir, o script cria as pastas "/nome da unidade/backupatual" e move o arquivo "backup_unidade.39690970.dia.030820132300.sql.tar.bz2" para dentro da pasta "/nome da unidade/backupatual";
4)Se a pasta já existir, simplesmente move o arquivo "backup_unidade.39690970.dia.030820132300.sql.tar.bz2" para dentro da pasta "/nome da unidade/backupatual".
Conteúdo do arquivo txt:
30107970;CDD BH
30110970;ACF PIO XII
30110971;CDD FLORESTA
30110972;AGF CONTORNO
30110973;AGF FLORESTA
30111970;ACF ROD. B HORI
30111971;ENT RODOVIARIA
30111972;AGF TERMINAL BH
30112970;AC SAVASSI
e assim por diante...
#!/bin/bash
UPLOAD="/upload"
TXT="/etc/arq.txt"
for ARQ in $(ls $UPLOAD)
do
unidade=$(echo $ARQ | cut -d'.' -f2)
existe=$(grep $unidade $TXT)
if [ $? -eq 0 ]; then
if [ -d "/${unidade}/backupatual" ]; then
mv ${UPLOAD}/${ARQ} /${unidade}/backupatual/
else
mkdir -p /${unidade}/backupatual/
mv ${UPLOAD}/${ARQ} /${unidade}/backupatual/
fi
else
echo "Nao existe a unidade ${unidade} no arquivo ${TXT}"
fi
done
[]s
Jocajuni