Question: a few weeks ago, we setup a cronjob that wipes the entire contents of /tmp every Sunday at 5am. I wasn't really convinced that this is a good idea. Today we discovered that a certain task depended on an existing directory inside /tmp - the task was broken, and worse, it remained silence about why it failed. The question is:

Is it generally a bad idea to just wipe out /tmp?

Answer: 
It's not a bad idea to do something about stale old files in /tmp, but I'm not sure that nuking the contents is the best thing you could do.

My CentOS servers use something called tmpwatch, which runs daily and can be configured to remove only files that haven't been accessed in a certain period (30 days is a popular delay), or modified in a certain period; it can be told to leave directories alone unless they're empty, or not to touch directory files at all, or to exclude files used by a certain user (root is a popular choice).

This works well for me, and it offers enough hooks that you can tune it to do what you want. I'd recommend tmpwatch, or whatever your distro offers that's like that.
According to [the FHS](http://www.pathname.com/fhs/pub/fhs-2.3.html#TMPTEMPORARYFILES):

> 
> Programs must not assume that any files or directories in /tmp are preserved between invocations of the program.
> 
> 
> Rationale
> 
> 
> IEEE standard P1003.2 (POSIX, part 2) makes requirements that are similar to the above section.
> 
> 
> Although data stored in /tmp may be deleted in a site-specific manner, it is recommended that files and directories located in /tmp be deleted whenever the system is booted.
> 
> 
> FHS added this recommendation on the basis of historical precedent and common practice, but did not make it a requirement because system administration is not within the scope of this standard.
> 
> 
> 

However, this is only a recommendation, and furthermore, it states only between invocations of a program -- which unless you're rebooting your server as well at 5am on Sunday, isn't happening. So, things like lockfiles, temp sockets, etc get deleted and cause problems.

As [MadHatter](https://serverfault.com/users/55514/madhatter) suggested, use `tmpwatch`.