У меня есть задание cron, которое запускает сценарий оболочки. Содержимое сценария оболочки выглядит следующим образом:
#!/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
В CloudBackup
папка смонтирована в моем /etc/fstab
следующим образом:
//mediaserver/shared/AmazonCloudDrive/Backup/confluence /home/backupuser/CloudBackup cifs uid=backupuser,credentials=/home/backupuser/.smbcredentials,iocharset=utf8,sec=ntlm 0 0
Единственная часть сценария оболочки, которая не работает при запуске заданием cron, - это find CloudBackup/ -type f -mtime +30 -delete
команда. Однако, если я вхожу в консоль и запускаю сценарий от имени того же пользователя, который запускает задание cron, все работает и файлы удаляются.
Может ли кто-нибудь объяснить, почему все работает, когда сценарий запускается из консоли, но команда find не работает, когда сценарий запускается как часть задания cron одним и тем же пользователем?