I'm a little confused. I have a download directory that I want to remove all files older then 30 days with tmpreaper. Just one problem, the directory in question is a separate partition with a lost+found directory, of course I need to keep it so I added --protect 'lost+found'
, the problem is that tmpreaper outputs:
error: chdir() to directory 'lost+found' (inode 11) failed: Permission denied
(PID 30604) Back from recursing down `lost+found'.
Entry matching `--protect' pattern skipped. `lost+found'
I have tried with other pattern like lost* and so on... I'm running tmpreaper as a non-root user because there is no reason for superuser privileges because I own all files (except lost+found).
Are I'm forced to run tmpreaper as root? Or are my shell-skills not as good as I thought? I guess the problem is:
tmpreaper will chdir(2) into each of the directories you've
specified for cleanup, and check for files matching the
<shell_pattern> there. It then builds a list of them, and
uses that to protect them from removal.
Any thought and/or advice?
The command I'm trying to run is something like
$ /usr/sbin/tmpreaper -t --protect 'lost+found' 30d /mydir 1> /dev/null
error: chdir() to directory `lost+found' (inode 11) failed: Permission denied
Edit:
Redmumba noticed that the return code is still zero, and the files are removed. I must have had some other issues before because nothing was removed when I wrote this post. Anyway it's working now, Thanks.
The
lost+found
directory is file system specific and, even if you change the permissions, they will automatically be reverted back toroot:root
on a remount (or possibly even sooner). However, because it sounds like you DON'T want to remove things there, it sounds like it may be a problem with the directory you're specifying.For example, lets say you're removing the files inside
/tmp
, which is on a separate partition. If you runtmpreaper --protect 'lost+found' /tmp/*
, it willchdir
into/tmp/lost+found
then apply the shell glob--but it will fail with the permissions issue you saw. When you specify the directory fortmpreaper
, just use the parent directory--i.e.,tmpreaper --protect 'lost+found' /tmp
.Hopefully that's your problem... if not, update with more information (such as the exact command you're using) and we can try and get you back on track!
EDIT: So I set it up locally, and I noticed that it finishes successfully. It appears that it only prints out the error message, but does not react to it--i.e., it returns 0, indicating success. I originally assumed it was failing, but that doesn't seem to be the case. It sounds like filing a bug might be in order with details, as I wouldn't imagine that this is intended behavior.