|
From: | Julio C. Neves |
Subject: | Re: [shell-script-pt] Identificando diretórios não acessados |
Date: | Thu, 12 Dec 2019 09:55:07 -0300 |
Em qua., 11 de dez. de 2019 às 10:54, Julio C. Neves
<address@hidden> escreveu:
>
> Fala Jamesonson,
> Acho que vc copiou esse script do Vade Mecum Forense (KKKKKKK)
KKKKK, Não! Na verdade, se tivesse copiado seria bem pior! Se eu te
contasse a péssima qualidade do texto das leis, a chance é grande de
você não acreditar em mim! KKK
>
> É muito difícil interpretar a lógica do script de outrem, sem perder muito tempo, mas vou te dar uns conselhos, vc tenta e vamos acertando ao longo do tempo.
>
> Recomendações:
>
> Não use variáveis em letras maiúsculas. Além de ser perigoso, pq vc pode criar uma com o mesmo nome de outra do sistema, dificulta a leitura;
> Em 99% dos casos, variáveis não precisam de estar entre chaves ({}). Isso é desnecessário e dificulta a leitura;
> Para simplificar seu prg, o ideal é usar vetores e for.
>
> Criando o vetor Dir (repare que só a primeira está em maiusc):
> Dir=(""
> /home/jamenson/outros_documentos/contabilidade
> /media/jamenson/windows/Users/Public/Documents/contabilidade
> /media/jamenson/windows/Users/Public/Documents/amway/contabilidade
> /media/jamenson/windows/mcjadvocacia/contabilidade
> /media/jamenson/windows/tmsa/01-corrente/contabilidade
> /cygdrive/c/Users/Public/Documents/contabilidade
> )
>
> Criando o Vetor Destino
> Destino=(
> jafesp-box:contabilidade/
> jafesp-gdrive:contabilidade/
> jafesp-mega:contabilidade/
> jafesp-onedrive:contabilidade/
> jafesp-yandex:contabilidade/
> )
>
> Agora acho que vc pode fazer algo assim:
> for ((IndDir=1; IndDir<=5; IndDir++))
> do
> cd ${Dir[IndDir]}
> for ((IndDest=0; IndDest<=4; IndDes++))
> do
> rclone --verbose --checksum --update --modify-window=1s --tpslimit 5
> copy . ${Destino[IndDest]}
> done
> done
>
> Agora temos de adaptar isso à sua realidade.
>
Obrigado pela ajuda.
Fiz uns ajustes e, por enquanto, o resultado é este:
= = = = = Início de transcrição = = = = =
#!/bin/bash
E_XCD=86 # Acesso impossível ao diretório?
N_DIR=0 # Número de diretórios não acessados.
if env test -z "${RCLONE_CONFIG_PASS}" # 0 (verdadeiro) = Variável \
não contém valor; 1 (falso) = Variável contém valor.
then
source /home/jamenson/set-rclone-password.txt
# Etapa um: copiar os arquivos de Jamenson
# Vetor "Dir"
Dir=(
/home/jamenson/outros_documentos/contabilidade
/media/jamenson/windows/Users/Public/Documents/contabilidade
/media/jamenson/windows/Users/Public/Documents/amway/contabilidade
/cygdrive/c/Users/Public/Documents/contabilidade
)
# Vetor "Destino"
Destino=(
jafesp-box:contabilidade/
jafesp-gdrive:contabilidade/
jafesp-mega:contabilidade/
jafesp-onedrive:contabilidade/
jafesp-yandex:contabilidade/
)
for ((IndDir=0; IndDir<=5; IndDir++))
do
cd ${Dir[IndDir]} 2>/dev/null || {
echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
let "N_Dir += 1" }
for ((IndDestino=0; IndDestino<=4; IndDestino++))
do
rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}
done
done # Está dando erro aqui:
./teste.sh: linha 39: erro de sintaxe próximo ao token inesperado `done'
./teste.sh: linha 39: `done'
# Etapa dois: copiar os arquivos do negócio Amway
# Vetor "Dir"
Dir=(
/media/jamenson/windows/Users/Public/Documents/amway/contabilidade
)
# Vetor "Destino"
Destino=(
jafesp-box:amway/contabilidade/
jafesp-gdrive:amway/contabilidade/
jafesp-mega:amway/contabilidade/
jafesp-onedrive:amway/contabilidade/
jafesp-yandex:amway/contabilidade/
)
for ((IndDir=0; IndDir<=5; IndDir++))
do
cd ${Dir[IndDir]} 2>/dev/null || {
echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
let "N_Dir += 1" }
for ((IndDestino=0; IndDestino<=4; IndDestino++))
do
rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}
done
done
# Etapa três: copiar os arquivos do negócio mcjadvocacia
# Vetor "Dir"
Dir=(
/media/jamenson/windows/mcjadvocacia/contabilidade
)
# Vetor "Destino"
Destino=(
jafesp-onedrive:mcjadvocacia/contabilidade/
mcjadvocacia-gdrive:contabilidade/
mcjadvocacia-yandex:contabilidade/
)
for ((IndDir=0; IndDir<=5; IndDir++))
do
cd ${Dir[IndDir]} 2>/dev/null || {
echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
let "N_Dir += 1" }
for ((IndDestino=0; IndDestino<=4; IndDestino++))
do
rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}
done
done
# Etapa quatro: copiar os arquivos do negócio tmsa
# Vetor "Dir"
Dir=(
/media/jamenson/windows/tmsa/01-corrente/contabilidade
)
# Vetor "Destino"
Destino=(
tmsa-gdrive:01-corrente/contabilidade/
tmsa-mega:01-corrente/contabilidade/
tmsa-yandex:01-corrente/contabilidade/
)
for ((IndDir=0; IndDir<=5; IndDir++))
do
cd ${Dir[IndDir]} 2>/dev/null || {
echo "Não posso acessar o diretório \"${Dir[IndDir]}\"." >&2
let "N_Dir += 1" }
for ((IndDestino=0; IndDestino<=4; IndDestino++))
do
rclone --verbose --checksum --update --modify-window=1s \
--tpslimit 5 copy . ${Destino[IndDestino]}
done
done
if env test "${N_Dir}" -eq 7
then
echo "Não consegui acessar nenhum diretório. Nenhuma cópia de \
segurança foi produzida!"
exit ${E_XCD}
else
echo "Cópia de segurança produzida."
exit 0
fi
fi
exit 0
= = = = = Fim de transcrição = = = = =
Entendo que já mais "legível por humanos".
Jamenson Ferreira Espindula de Almeida Melo
Jaboatão dos Guararapes, Pernambuco, Brasil
Usuário GNU/Linux nº 166197
https://linuxcounter.net/cert/166197.png
Impressão digital da chave:
234D 1914 4224 7C53 BD13 6855 2AE0 25C0 08A8 6180
_______________________________________________
shell-script-pt mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/shell-script-pt
[Prev in Thread] | Current Thread | [Next in Thread] |