我有一个运行 shell 脚本的 cron 作业。shell 脚本的内容如下:
#!/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 作业运行时,shell 脚本唯一不起作用的部分是命令find CloudBackup/ -type f -mtime +30 -delete
。但是,如果我登录控制台并以运行 cron 作业的同一用户身份运行脚本,则一切正常,文件被删除。
有人能解释为什么当从控制台运行脚本时一切都正常,但是当同一用户作为 cron 作业的一部分运行脚本时 find 命令不起作用吗?