Can cron be modified via a script?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Can cron be modified via a script?
# 1  
Old 07-07-2014
Can cron be modified via a script?

Hi,

From time to time, I have a cron job that I have to enable/disable/enable/disable. I just want to know if there is any way to insert cron entries or do this to enable/disable bit via a script instead.

It seems 'safer' to do this via a script rather than manual? I think Smilie or is this such a bad idea Smilie
# 2  
Old 07-07-2014
Rather than inserting and deleting lines in your crontab file, I'd suggest manually adding the line originally. Then you can disable it by adding a # to the start of the line and enable it by removing the #.

Note that the default editor used by crontab -e is vi (which isn't really suitable for scripting), but you can use EDITOR=ed crontab -e or EDITOR=ex crontab -e to specify an editor that is easy to use in a script.
# 3  
Old 07-09-2014
Or you could put something at the start of the script to 'test' for the presence of a file and, if not present, just exit.

You could then stop the job running by deleting the file and reschedule the job by using 'touch' to create the file.
This User Gave Thanks to hicksd8 For This Post:
# 4  
Old 07-09-2014
The safest way is to have your script do it. [ -f /path/to/myscript-lock ] && exit 0

If you must edit cron automatically, I put a unique ID in the cron line to make it easy to match and difficult for a script to mistake.

Code:
0 * * * * /path/to/myscript.sh # 1234123132

This User Gave Thanks to Corona688 For This Post:
# 5  
Old 07-09-2014
The way I would do this would be to have two crontab files.

When you want to enable the (new) cron entries, use the script to copy the "enabled" crontab file over to crontab and restart crond.

When you want to disable the (new) cron entries, use the script to copy the "disabled" crontab file over to crontab and restart crond.
This User Gave Thanks to Neo For This Post:
# 6  
Old 07-09-2014
For the insane hackers here are some script commands that edit the crontab.
Say the entry (with a unique identifier) is
Code:
0 * * * * /path/to/myscript.sh # 1234123132

then one can disable it with
Code:
echo "/1234123132/ s/^/#/
w
q" | EDITOR=ed crontab -e

and enable with
Code:
echo "/1234123132/ s/^#//
w
q" | EDITOR=ed crontab -e

An alternative method, works with Unix cron:
disable
Code:
crontab -l | sed '/1234123132/ s/^/#/' | crontab

enable
Code:
crontab -l | sed '/1234123132/ s/^#//' | crontab

Vixie cron (most Linux distros) does not allow crontab alone but needs crontab -.

Last edited by MadeInGermany; 07-09-2014 at 02:58 PM.. Reason: typo
# 7  
Old 07-09-2014
I would look for /# ID$/, not just /ID/, in case you're unfortunate enough to find another ID ending in the right digits but beginning with something else.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Execution problem with Cron: Script works manually but not w/Cron. Why?

Hello gurus, I am making what I think is a simple db2 call from within a shell script but I am having difficulty producing the desired report when I run the script shown below from a shell script in cron. For example, my script and the crontab file setup is shown below: #!/bin/ksh db2... (3 Replies)
Discussion started by: okonita
3 Replies

2. Shell Programming and Scripting

Script to FTP a modified file

Hello, I am fairly new to shell scripting. I see a lot of examples out there of how to find if a file has been modified within a certain period of time. What I'm looking for help with is a script that will run and I'm thinking check for the last 24 hours but if not just check at runtime to see... (6 Replies)
Discussion started by: PyroPlasm
6 Replies

3. UNIX for Dummies Questions & Answers

How to check when cron was modified

Hi all, We use cron "/usr/rdl/sc/cccron" to execute our jobs. But sometimes it is being changed. but we are not sure when it is changed. how could we find when cron is modified. i checked cron by giving ls -l . but it is showing 2009 year. ls -l /usr/rdl/sc/cccron -r-xr-xr-x 1... (2 Replies)
Discussion started by: Divakar
2 Replies

4. UNIX for Advanced & Expert Users

How to find when cron is modified

Hi all, We use cron "/usr/rdl/sc/cccron" to execute our jobs. But sometimes it is being changed. but we are not sure when it is changed. how could we find when cron is modified. i checked cron by giving ls -l . but it is showing 2009 year. ls -l /usr/rdl/sc/cccron -r-xr-xr-x 1... (0 Replies)
Discussion started by: Divakar
0 Replies

5. Shell Programming and Scripting

How to check when cron is modified

Hi all, We use cron "/usr/rdl/sc/cccron" to execute our jobs. But sometimes it is being changed. but we are not sure when it is changed. how could we find when cron is modified. i checked cron by giving ls -l . but it is showing 2009 year. ls -l /usr/rdl/sc/cccron -r-xr-xr-x 1... (0 Replies)
Discussion started by: Divakar
0 Replies

6. Shell Programming and Scripting

Shell script to use the last modified filename in a variable

Forgive me if this is a trivial question, but I haven't been able to find the answer to this. Basically I've got a list of files in a particular directory that have the general form t_*.dat. (I have other files in the same directory as well). Essentially what I want to do is obtain the name... (1 Reply)
Discussion started by: lost.identity
1 Replies

7. Shell Programming and Scripting

How to get a filename modified by attaching modified timestamp

Hi, I want to modify a filename in AIX by attaching the last modified timestamp. I want the timestamp completely in numerical format (eg:200905081210. yr-2009, mnth - 05, date -08, hr - 12, mins - 10). For example if the filename is a.log and it was modified on April 6th 2008 at 21.00. I... (16 Replies)
Discussion started by: Ruks
16 Replies

8. Shell Programming and Scripting

ZIP Script modified - Help

Hello, I got this script that read directories, create a zip and put logfile into the zip. dir=/iscsi/webserver231/; for subdir in "$dir"/*/; do find "$subdir" -type f -name 'ex??????.log' -exec bash -c 'for f; do f=${f##*/ex}; echo "${f%??.log}"; done' - {} + | sort -u | while read date;... (1 Reply)
Discussion started by: joinup
1 Replies

9. Shell Programming and Scripting

help: find and modified files script

hello all im a newbie in the linux world ..i have just started creating basic scripts in linux ..i am using rhel 5 ..the thing is i wanted to create a find script where i could find the last modified file and directory in the directory given as input by the user and storing the output in a file so... (6 Replies)
Discussion started by: tarunicon
6 Replies

10. UNIX for Dummies Questions & Answers

how to retrieve original contents of a modified file (modified using vi)

Made changes to a file using vi editor and saved those changes now realised that the changes are not required How can I get the previous version of the file.i.e the one which was there on which I had made changes (3 Replies)
Discussion started by: novice100
3 Replies
Login or Register to Ask a Question