Eu tenho um cron job que executa um script de shell. O conteúdo do script de shell é o seguinte:
#!/bin/bash
cd
sudo service confluence stop
NOW=$(date +"%Y%m%d-%H%M%S")
mkdir Backup/db
mkdir Backup/data
chmod 777 Backup/data/
sudo -u postgres pg_dump confdb > Backup/db/confdb-$NOW.sql
sudo -u confluence cp -r /var/atlassian/application-data/confluence/ Backup/data/
sudo chown -R backupuser:backupuser Backup/data/confluence
tar czvf Backup/confluence-backup-$NOW.tgz Backup/db Backup/data
rm -rf Backup/data/ Backup/db/
rsync --remove-source-files -v Backup/*.tgz CloudBackup/
find CloudBackup/ -type f -mtime +30 -delete
sudo service confluence start
A pasta CloudBackup
está montada no meu /etc/fstab
da seguinte forma:
//mediaserver/shared/AmazonCloudDrive/Backup/confluence /home/backupuser/CloudBackup cifs uid=backupuser,credentials=/home/backupuser/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
A única parte do script de shell que não funciona quando é executada pela tarefa cron é o comando find CloudBackup/ -type f -mtime +30 -delete
. No entanto, se eu fizer login no console e executar o script como o mesmo usuário que está executando a tarefa cron, tudo funcionará e os arquivos serão excluídos.
Alguém pode explicar por que tudo funciona quando o script é executado a partir do console, mas o comando find não funciona quando o script é executado como parte de uma tarefa cron pelo mesmo usuário?