Stop Ubuntu / Debian Linux From Deleting /tmp Files on Boot

by on January 10, 2008 · 16 comments· LAST UPDATED January 10, 2008

in , ,

Q. I know /tmp as it named is a temporary dircory, Debian policy is to clean /tmp at boot. However, I'd like to configure my Ubuntu Server to stop deleting files from /tmp on boot due to custom configuration issue. How do I configure behavior of boot scripts to stop deleting files on boot?

A. Users should not store files in /tmp, use /home or other partition, if you would like to keep the files. The behavior of boot scripts is controlled via a special configuration file called /etc/default/rcS. Open this file and modify TMPTIME variable.

On boot the files in /tmp will be deleted if their modification time is more than TMPTIME days ago. A value of 0 means that files are removed regardless of age. If you don't want the system to clean /tmp then set TMPTIME to a negative value(-1) or to the word infinite.

Configuration /etc/default/rcS

Open /etc/default/rcS file, enter:
$ sudo vi /etc/default/rcS
Set TMPTIME to 60 so that files in /tmp will deleted if their modification time is more than 60 days ago.
TMPTIME=60
Close and save the file. This configuration is used by /etc/init.d/bootclean script on boot to clean /tmp and other directories under all Debian based Linux distros.

A note about RHEL / CentOS / Fedora / Redhat Linux

Redhat and friends use /etc/cron.daily/tmpwatch cron job to clean files which haven’t been accessed for a period of time from /tmp. The default is 720 hours. If the file has not been accessed for 720 hours, the file is removed from /tmp. You can modify this script as per your requirements:
# cp /etc/cron.daily/tmpwatch /etc/cron.daily/tmpwatch.bak
# vi /etc/cron.daily/tmpwatch

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 16 comments… read them below or add one }

1 David January 11, 2008 at 9:30 pm

Solaris puts /tmp into a memory-based filesystem; thus, when the contents of memory are lost, the contents of /tmp are lost.

If you want to keep /tmp under Solaris, you have to make a partition where it can be kept. Then adjust the file /etc/vfstab to the correct settings for /tmp.

However, I would strongly discourage using /tmp for something permanent; it can’t be that hard to move things to an appropriate place.

Reply

2 nixCraft January 12, 2008 at 9:32 am

Thanks for shading more light about Solaris UNIX.

Appreciate your post!

Reply

3 sl June 26, 2008 at 8:12 pm

why delete files in tmp automatically?
my hard drive is more than 1000GB.

Reply

4 KermitTheFragger January 3, 2009 at 12:18 pm

If you want to store temporary files that are not deleted at boot, why not use /var/tmp ? Thats what /var/tmp is for. See http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Reply

5 lost6hrsofdownload November 1, 2009 at 1:28 pm

Thanks for the post..im a novice user of *ux and i used to store files in /tmp on Redhat, so i didnt find a reason not to store em in ubuntu as well. i jus downloaded the alternate iso for karmic koala and stored it under /tmp, only to find it gone! :( => cant upgrade my ubuntu today!

Reply

6 biOos December 22, 2009 at 9:38 pm

Thnks! very useful for ubuntu!!

Reply

7 Mukund June 25, 2010 at 7:02 am

Hi,

By mistake I have copied soem data in /tmp folder, after boot all data gone , is there any chance to recover my data. It would be gr8 if someone can help me with this.

Thanks
Mukund

Reply

8 Steve August 14, 2010 at 2:03 pm

Thanks for this tip. In Ubuntu 10.04 (and possibly earlier releases),
the cleaning script is in /etc/init/mounted-tmp.conf.
— A Fedora user who just found out that Ubuntu is different … :-)

Reply

9 Bob January 19, 2011 at 1:51 pm

Like someone mentioned for solaris above, many distributions mount /tmp to RAM-based storage (e.g. /dev/shm). So /tmp is wiped clean when you boot due to the nature of a RAM disk. There’s no way to recover the files. As others have mentioned, don’t store anything in /tmp that you aren’t willing to lose forever.

Reply

10 denpick June 2, 2011 at 1:34 pm

Defending a bad and very tricky practice of a default to remove users files by saying what a user should or should not do is pretty arrogant. Who is anyone to tell me the user that my files are so unimportant that they will be deleted. It’s not the distro’s business. What a stupid decision…but what arrogance to defend it. No wonder Linux just can’t move from a geek OS. User’s hate this type of arrogance and trickery.

Reply

11 TOMOTH July 25, 2013 at 2:35 pm

Denpick;

Thank you, Thank you, THANK YOU!

I am in 100% agreement with your comment.

The only thing I would add is the arrogancy of turning on all sorts of packages that the average user doesn’t run – like a FINGER PRINT SCANNER!

regards,
TOMOTH

Reply

12 Ethan Lamoureux February 19, 2012 at 12:33 pm

I just looked up this info because of a situation I am in. I generate a lot of data on my computer, and if I forget to make backups and delete stuff regularly, my home partition can fill rapidly. Also my root partition is nearly full because of Ubuntu’s insanely small default root partition size. The only partition I have left for moving things around in order to make backups is my /tmp partition, and so I currently have important data stored there.

It so happens that my DVD burner has decided to lock up on me, and the only way I can get it back is to reboot… but, you guessed it, if I reboot, MY IMPORTANT DATA will be LOST FOREVER because some IDIOT(S) decided to delete files there without asking me, the user, what I want. And then to top it off, we’re told that “there are better places to keep user data.” Right, like in one of my other partitions which are filled up?

Please, if you write software, REMEMBER THE USER! And if you write advice for users, remember that not every user’s situation is ideal!

Reply

13 Sebastian March 6, 2012 at 8:49 pm

/tmp is not supposed to be used as a storage. The user workspace is its /home/xyz directory, why does they expect data stored elsewhere to still be there at any other time?

RL analogy: Put your TV set on the sidewalk (ie, outside your “home”) and see if it’s still there tomorrow. It might be, but you can’t be sure.

Reply

14 Ethan Lamoureux March 7, 2012 at 6:05 am

Bad analogy. The public sidewalk is public, with no security. My /tmp directory though is private, only those with access to my computer can do anything with it. Also, each user’s data is protected from being tampered with by other users, so there is a measure of security. Finally, I have no control over the public sidewalk, but I own my computer and its /tmp directory and should not have to tolerate undesired behavior.

Did you not read my message illustrating why “Use your home directory!” is not always possible? Is not temporary persistent storage a legitimate use for a /tmp directory?

Reply

15 Nicola Manini November 12, 2012 at 8:08 pm

The article is fine and provides a solution to Ethan’s problem.
Generally:
1) it is desirable to have a /tmp folder where to throw temporary files and not having to worry to clean them up later, so the default unix behavior is fine. I usually set TMPTIME=7: one week seems long enough for my own taste.
2) the ramdisk /tmp is a crazy idea. Luckily present-day debian has given it up and by default /tmp is in the physical disk.
3) Ethan’s example shows how bad an idea it is to multilply partitions: /tmp should be part of the / partition. It may occasionally make sense to have a separate /home partition, although it is often unnecessary. Personally I do create /home as a separate partition in desktop pcs with plenty of disk space, but would never have one in a laptop, where disk space may run out.

Reply

16 ask_for_more December 5, 2012 at 10:54 am

let’s say you want to cleanup your fish tank, so you have to put your fish somewhere temporarily. If you don’t find any better place than toilet sink, well let it be, but be so kind and place them back into the tank as after single flush your fish be gone :)

same for /tmp directory – files are not supposed to be stored there.

Reply

Leave a Comment

Tagged as: , , , , , , , , , ,

Previous Faq:

Next Faq: