I am trying to find some files on a path /local/java_apps/
and then delete them using a shell script and generate a log file in the /home/jboss
The code is as follows :
STAMP=$(date +"%m%d%Y%H%M%S") sudo -u jboss find /local/java_apps/ -type f -iname '*.pdf' -mtime +180 -print -delete >> /home/jboss/.log_$STAMP 2>&1
The ls -ld /local/java_apps
command gives:
drwxrwxr-x+ 3 root root 4096 Oct 10 2017 /local/java_apps/
The crontab looks like this:
0 1 * * 4 /etc/cron.weekly/servercleanup.sh
When the script is run by the crontab it gives the following error:
find: failed to restore initial working directory: Permission denied
Best Answer
find
changes its directory as part of its internal operation. When you run the command, you're sitting in a directory that thejboss
user doesn't have permission to go to, so whenfind
tries to put its directory back to what it was, it fails. To fix the problem, run the command from a directory thatjboss
is allowed to access.