Operating System - Linux
1821638 Members
3158 Online
109633 Solutions
New Discussion юеВ

Crontab not accepting changes

 
Idris Lirio
Occasional Advisor

Crontab not accepting changes

I have a problem with linux 7.3 crontab -e not writting the changes to the crontab file. Once crontab is opened for root it generates a file in the /tmp directory which is updated when I make changes and :w!, but after I exit with any other option wq, w, etc the tmp file disappears and the changes are not written to cron. There is also a message saying crontab: no changes made to crontab. any help with this is greatly appreciated.
15 REPLIES 15
Fredrik.eriksson
Valued Contributor

Re: Crontab not accepting changes

There could be a permission error?
I'm not sure where the "crontab -e" file is supposed to be stored.
But you could just aswell use /etc/crontab or a local crontab file which you can execute by running:
# crontab /path/to/local/crontab.file

Hope this helps you :)
Best regards
Fredrik Eriksson
Ivan Ferreira
Honored Contributor

Re: Crontab not accepting changes

Try removing and reinstalling your cron:

crontab -l > cron.root
crontab -r
crontab cron.root

Then try to edit again. This is to ensure that permissions for the cron file are correct.

Also, ensure that the crontab command has the SUID and SGID bit enabled:

# ls -la $(which crontab)
-rwsr-sr-x 1 root root 311288 mar 14 2007 /usr/bin/crontab
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

Ivan

I just tried this and still have the smae issue.

/var/spool/cron/root
-rw------- 1 root root 3.2k Nov 13 12:17 root

-rwsr-xr-x 1 root root 21080 Apr 14 2002 /usr/bin/crontab

The funny thing is I can edit the /var/spool file and crontab -e shows the changes, but a straight edit using crontab -e does not even when :w! is used and states cron was updated, but I suspect the update only refers to the /tmp file and not the actual cron file which is never updated on exit
Ivan Ferreira
Honored Contributor

Re: Crontab not accepting changes

Sometimes, when you have a syntax error in your cron file, for example, a missing value, the changes are not saved.

├В┬┐Can you upload a txt file with all your procedure?
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
skt_skt
Honored Contributor

Re: Crontab not accepting changes

check if your / fs is RW mode; You may not have /tmp as seprate file system now. give a try..
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

The file contains the entire crontab for root
Johnson Punniyalingam
Honored Contributor

Re: Crontab not accepting changes

#----------------------
# Monitor load avg on noble boxes
#----------------------
*/5 * * * * /root/monitor/loadavg.pl
#----------------------

above entry in your crontab looks to me wrong.


A crontab file has five fields for specifying day , date and time followed by the command to be run at that interval.

* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)


Thanks,
Johnson
Problems are common to all, but attitude makes the difference
Dennis Handly
Acclaimed Contributor

Re: Crontab not accepting changes

>Johnson: */5 * * * * /root/monitor/loadavg.pl
>above entry in your crontab looks to me wrong.

You might want to explain what you think is wrong? That "*/5" syntax seems to be linux for every 5 minutes. (Not valid for HP-UX though.)
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

I agree the */5 is a valid entry and we use it on our other 7.3 boxes which happen to be red hat. Sorry for not mentioing that earlier
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

I have found a possible cause for this but have not yet found a fix. The problem is with VIM and the way it handles tmp files I ran a stat and posted the results below. The way the stat should look. The Inodes should be the same after the w: and the modify and change times should be different than the access time.

Just After the file was opened:
File: "/tmp/crontab.6550"
Size: 2463 Blocks: 8 IO Block: -4611708214818369536 Regular File
Device: 803h/2051d Inode: 24 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Fri Dec 12 10:48:18 2008
Modify: Fri Dec 12 10:48:18 2008
Change: Fri Dec 12 10:48:18 2008

After edit and :w to tmp file:
File: "/tmp/crontab.6550"
Size: 2478 Blocks: 8 IO Block: -4611721408957902848 Regular File
Device: 803h/2051d Inode: 24 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Fri Dec 12 10:48:18 2008
Modify: Fri Dec 12 10:48:43 2008
Change: Fri Dec 12 10:48:43 2008


The problem I am having with the VIM editor.
Vim is creating a new tmp file with every write or save
Which causes the access, modify, and change times to be the same

File: "/tmp/crontab.18352"
Size: 3079 Blocks: 8 IO Block: -4611692890375057408 Regular File
Device: 805h/2053d Inode: 7209236 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Fri Dec 12 10:19:28 2008
Modify: Fri Dec 12 10:19:28 2008
Change: Fri Dec 12 10:19:28 2008

After the w: on the tmp file:
File: "/tmp/crontab.18352"
Size: 3094 Blocks: 8 IO Block: -4611692890375057408 Regular File
Device: 805h/2053d Inode: 7209239 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: Fri Dec 12 10:19:56 2008
Modify: Fri Dec 12 10:19:56 2008
Change: Fri Dec 12 10:19:56 2008

If anyone has or knows of a way to correct this please advise
Dennis Handly
Acclaimed Contributor

Re: Crontab not accepting changes

>The problem is with VIM and the way it handles tmp files

Why do you think this has anything to do with crontab?

>Vim is creating a new tmp file with every write or save, which causes the access, modify, and change times to be the same

What's wrong with that?
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

When using crontab -e if the change time is not different from the access time then the temp file is not written back to the original crontab file. This is shown in my previous posting of the stat that I ran on a working server compared to the non working. What I am looking for is a way to get vim to not create a new temp file every time a w or wq is initiated.
Dennis Handly
Acclaimed Contributor

Re: Crontab not accepting changes

>When using crontab -e if the change time is not different from the access time then the temp file is not written back to the original crontab file.

This doesn't make sense. It should compare the modification time with the previous modification time, when it wrote it. But I suppose it doesn't like the fact that the inode has changed?

>This is shown in my previous posting of the stat that I ran on a working server compared to the non working.

That's a compelling argument.

>What I am looking for is a way to get vim to not create a new temp file every time a w or wq is initiated.

I'm not sure why it would do that? In the meantime, could you do the following:
:w
:touch %
:q

That way your modification time should be different from the inode change time.
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

The cause of the problem has been located. My /tmp directory is a symlink to another partition with more space which apparently due to the way vim handles files causes crontab -e to not work properly. /tmp must be an actual directory and not a symlink I have tested this and the problem of not saving the crontab went away when /tmp was an actual directory.

Thanks for all your help guys and the link below is where I found the answer to the problem.

http://bugs.gentoo.org/32938
Idris Lirio
Occasional Advisor

Re: Crontab not accepting changes

Solution listed in previous post