Enviado em 31/12/2021 - 19:29h
Olá, sou novo no mundo Linux, me perdoem se estou perguntando besteira.
Vamos lá!
Estou tentando criar um script que remova o arquivo mais antigo de dois diretórios específicos, caso a quantidade arquivos nestes diretórios seja maior que 4 arquivos.
Então eu criei assim:
Primeiro problema: Executei o script no diretório em que o criei, O mesmo só apaga os arquivos do caminho "/var/sftp/TESTE/". Só apaga o arquivo do outro diretório se eu executar o script novamente, que não é meu intuito.
Segundo problema: Quando eu faço agendamento no crontab o script não funciona de nenhuma forma.
Alguém consegue me ajudar?
Lembrando mais uma vez: Sou iniciante no Linux.
Vamos lá!
Estou tentando criar um script que remova o arquivo mais antigo de dois diretórios específicos, caso a quantidade arquivos nestes diretórios seja maior que 4 arquivos.
Então eu criei assim:
#! /bin/bash
DIR1=$(ls /var/sftp/TESTE/ | wc -l)
DIR2=$(ls /var/sftp/TESTE2/ | wc -l)
if [ $DIR1 -gt 4 ];then
stat /var/sftp/TESTE/* --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
elif [ $DIR2 -gt 4 ];then
stat /var/sftp/TESTE2/* --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
fi
DIR1=$(ls /var/sftp/TESTE/ | wc -l)
DIR2=$(ls /var/sftp/TESTE2/ | wc -l)
if [ $DIR1 -gt 4 ];then
stat /var/sftp/TESTE/* --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
elif [ $DIR2 -gt 4 ];then
stat /var/sftp/TESTE2/* --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
fi
Primeiro problema: Executei o script no diretório em que o criei, O mesmo só apaga os arquivos do caminho "/var/sftp/TESTE/". Só apaga o arquivo do outro diretório se eu executar o script novamente, que não é meu intuito.
Segundo problema: Quando eu faço agendamento no crontab o script não funciona de nenhuma forma.
Alguém consegue me ajudar?
Lembrando mais uma vez: Sou iniciante no Linux.