Tente as alterações (em vermelho):
#!/bin/bash
echo A que horas voce quer fazer o backup dos seus scripts bash?
read hora
locate /home/*.bash > arquivosbash.txt
lista=$(cat arquivosbash.txt)
> comandos.txt
for itens in $lista
do
echo cp $itens /home/raoni/raoni_backup >> comandos.txt
done
at $hora -f comandos.txt
Quanta alteração heim!
obs.: Não testei sua rotina, só vi a rotina direto aqui, mas acho que já vai rolar legal... a sim, faltam algumas consistências, mas esta ótimo.
Legal...
Testei, mas não funcionou direito!
Pelo que entendi, dessa forma o script vai criar o arquivo
comandos.txt antes do
for e depois vai adicionar a linha
echo cp $itens /home/raoni/raoni_backup
no mesmo, pra depois o
at chama-lo e realiza-lo!
Aqui o que está acontecendo é o seguinte: o script roda normalmente, localiza os arquivos
.bash e salva todos na lista
arquivosbash.txt. Essa
$lista é criada normalmente, porém o
for não está conseguindo ler a mesma!
O arquivo
comandos.txt também é criado, porém não existe comando nenhum gravado nele, pois a linha 12, que contém o comando
echo está dando erro.
Resumindo, esse script está apenas perguntando a que horas o usuário quer fazer o backup e criando um arquivo com a lista de todos os arquivos de interesse dele, e na hora marcada ele não copia esses arquivos.
Não sei o que está acontecendo, aparentemente o script está correto, mas conto com a ajuda de todos para descobrirmos!
Também espero estar contribuindo para o desenvolvimento dos scripts dos usuários por aqui logo em breve!:)
Obrigado, Abração;)