drunbass
(usa Debian)
Enviado em 14/05/2018 - 17:29h
Estou com um outro problema , como o nome de origem dos arquivos estão da seguinte maneira 2018-01-01_01
usando 2 casas decimais para tudo , na hora de procurar pelos arquivos transformo as variáveis usando um 0$var para números menores que 10 porém
por algum motivo que não estou entendendo as variáveis de endereço não aderem o valor novo e quando vou para o próximo laço de repetição ele buga para fazer a soma informando que o argumento é muito longo
estado atual do scrip
#!/bin/bash -x
ano="2018"
mes="03"
dia="01"
hora="01"
under="_"
tuto="*.wav"
origem="/var/spool/asterisk/monitor/$ano-$mes-$dia$under$hora$tuto"
destino="/mnt/storage/$ano/$mes"
for((mes="2";$mes<5;mes="$mes+1"))
do
#Verifica o destino
if [ -d $destino ]
then
echo " Diretorio $destino existe "
else
echo " Criando diretorio $destino "
mkdir -p -m 777 $destino
fi
if (($mes<10))
then
mes="0$mes"
else
mes="$mes"
fi
for((dia="01";$dia<32;dia="$dia+1"))
do
if (($dia<10))
then
dia="0$dia"
else
dia="$dia"
fi
for((hora="7";$hora<21;hora="$hora+1"))
do
if [ -d $origem ]
then
if (($hora<10))
then
hora="0$hora"
echo " copiando $origem para $destino "
mv $origem $destino
else
hora="$hora"
echo " copiando $origem para $destino "
mv $origem $destino
fi
else
if(($hora<10))
then
hora="0$hora"
echo " $origem nao existe "
else
hora="$hora"
echo " $origem nao existe "
fi
fi
done
done
done
Debug do erro
[root@scout.practis] 8020 130 - 14/May/2018 17:26
[~]$ ./backupdvd.sh
+ ano=2018
+ mes=03
+ dia=01
+ hora=01
+ under=_
+ tuto='*.wav'
+ origem='/var/spool/asterisk/monitor/2018-03-01_01*.wav'
+ destino=/mnt/storage/2018/03
+ (( mes=2 ))
+ (( 2<5 ))
+ '[' -d /mnt/storage/2018/03 ']'
+ echo ' Diretorio /mnt/storage/2018/03 existe '
Diretorio /mnt/storage/2018/03 existe
+ (( 2<10 ))
+ mes=02
+ (( dia=01 ))
+ (( 1<32 ))
+ (( 1<10 ))
+ dia=01
+ (( hora=7 ))
+ (( 7<21 ))
+ '[' -d '/var/spool/asterisk/monitor/2018-03-01_01*.wav' ']'
+ (( 7<10 ))
+ hora=07
+ echo ' /var/spool/asterisk/monitor/2018-03-01_01*.wav nao existe '
/var/spool/asterisk/monitor/2018-03-01_01*.wav nao existe
+ (( hora=07+1 ))
+ (( 8<21 ))
+ '[' -d '/var/spool/asterisk/monitor/2018-03-01_01*.wav' ']'
+ (( 8<10 ))
+ hora=08
+ echo ' /var/spool/asterisk/monitor/2018-03-01_01*.wav nao existe '
/var/spool/asterisk/monitor/2018-03-01_01*.wav nao existe
+ (( hora=08+1 ))
./backupdvd.sh: line 37: ((: hora=08: value too great for base (error token is "08")
Detalhe interessante é que a variável origem não está pegando as variáveis mes, dia , e hora quando as mesmas são atualizadas na estrutura de repetição.
Alguém consegue dar uma luz ?