Sponsored Content
Top Forums Shell Programming and Scripting Script that will look the same as Cron Post 303037677 by drysdalk on Friday 9th of August 2019 10:24:12 AM
Old 08-09-2019
Hi,

In that case, you'd really be into the territory of literally re-inventing crontab. For example, you could define an input file format that consisted of runtimes and their associated commands, and have your script read that file and run the commands when the runtimes arrived - in other words, to do pretty much exactly what the crond daemon does.

I've not got time right now to write a full example unfortunately, but if you defined your input format as something like:

Code:
Mon,10,00,/usr/local/bin/foo.sh
Fri,17,00,/usr/local/bin/bar.sh

and had your script read this file line-by-line, breaking out the variables in each line into the days, hour, minutes and commands, you could then run those commands via the same kind of infinite-loop approach as you've seen in the examples given thus far.

If you absolutely don't have access to crontab, and can't get the maintainer of the server to put in the cron entries for you, then this would more or less be the only way you'd get a general-purpose task scheduler going. But you'd probably want to be sure that the maintainer of the server was happy with you doing this, since presumably they've blocked access to cron to prevent people running commands on a set schedule, which is what you'd end up doing anyway here.
This User Gave Thanks to drysdalk For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cron Script Q

When logged in as root if I type "env" there are a bunch of environment settings including one for CLASSPATH. However, I ran a cron script that ran this command "env > cronEnv". I noticed that the environment variables were entirely different inside the script. There wasn't even a CLASSPATH... (2 Replies)
Discussion started by: doublek321
2 Replies

2. UNIX for Dummies Questions & Answers

Cron + Script = No Output?

I've got an *extremely* simple script I want to run every minute: #!/bin/sh ping -c 1 192.168.1.20 > ~/onlinestatus.txt So, the script is called "status", it's executable, and in the correct path, etc. In a terminal window (I'm using Mac OS X), I can type status, and it will create... (4 Replies)
Discussion started by: jmf77
4 Replies

3. AIX

problem with a script and the cron

hello I use a script to give me the number of users, at each hour. this script read a file where there is the number of users for each hour and for each month (so 12 files per year). If i execute the script (root), it is ok, i have xxx users for each hour. if I put the script in the cron... (1 Reply)
Discussion started by: pascalbout
1 Replies

4. Shell Programming and Scripting

script not working in CRON

guys i have written a very simple script .it runs manually well. but when i put it in cron,it doesn't give the desired output. script looks like this: #! /usr/bin/sh #script for loading data in table using ctl file/Abhijeet K/08.07.2006 /svm_wl1/. .profile cd... (5 Replies)
Discussion started by: abhijeetkul
5 Replies

5. Solaris

Need to cron the script

I want to cron one script which should run every second Thursday (in general Nth occurence of any day) of every month. I am not getting the exact idea of doing this; Please guide. Regards, (3 Replies)
Discussion started by: jaiankur
3 Replies

6. Shell Programming and Scripting

how to run script? call other script? su to another user? make a cron?

Good morning. I am searching for "how-to"'s for some particular questions: 1. How to write a script in HP-UX 11. 2. How to schedule a script. 3. How to "call" scripts from the original script. 4. How to su to another user from within a script. This is the basics of what the... (15 Replies)
Discussion started by: instant000
15 Replies

7. Solaris

Script for cron

Dear All, I have an assignment about collecting /var/adm/messages on each server running Solaris 9. All these servers will be installed with a script that collect all the messages in cron. All the messages will be collected by a single server. I have a script to collect all the messages, but... (2 Replies)
Discussion started by: frankoko
2 Replies

8. Shell Programming and Scripting

cron a script

This has to be the ultimate newbie question... I have a script that works well. To run it, I cut and paste it into a putty session. Is there a way to put the script into a file and just run that file -- like a DOS batch file? I'd like to schedule the file to run daily. Thanks,... (3 Replies)
Discussion started by: landog
3 Replies

9. 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

10. Shell Programming and Scripting

Script in cron

I have a script that require input from terminal at some point (either a,b or c) How can I cron the script and automatically assume c as the input. (2 Replies)
Discussion started by: aydj
2 Replies
crontab(1)						      General Commands Manual							crontab(1)

NAME
crontab - Submits a schedule of commands to cron SYNOPSIS
crontab [file] crontab -l | -v | -r | -e [username] STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: crontab: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
Edits a copy of your crontab entry. If the crontab entry does not exist, creates an empty entry to edit. The -e option invokes the editor specified by the EDITOR environment variable, or uses /usr/bin/vi by default. The crontab command installs the new entry when editing is complete. [Tru64 UNIX] If username is specified, edits the file for the specified user. You must have appropriate privileges to use this option. Displays the contents of your crontab file. Removes the crontab file from the crontab directory. [Tru64 UNIX] Displays the name of your crontab file and the date and time at which you submitted it with crontab. OPERANDS
Path name of file that contains crontab specifications in the format described. DESCRIPTION
The crontab command copies the specified file or standard input if you do not specify a file into the /var/spool/cron/crontabs directory, which holds all users' crontab files. The cron command runs commands according to the instructions in the crontab files. The crontab files are named for users, and the commands in the files are run under the user's authority. For example, the commands in the /var/spool/cron/crontabs/root file are run under root authority. When you use the crontab command, the file under your authority is affected. For example, if adm invokes the crontab -l com- mand, the /var/spool/cron/crontabs/adm file is displayed. If the username argument is included, the specified user's crontab file is listed and edited rather than the current user's crontab file. You must have root privileges to specify the username argument. By default, the vi editor is used. Note that the file /var/spool/cron/crontabs/root contains several entries that will run by default, such as the following command to back up and clean the /var/adm/wtmp log file: 0 2 * * 0 /usr/bin/logclean /var/adm/wtmp > dev/null You can configure these default commands to suit your local system requirements. After cron runs commands according to the contents of your crontab file, it mails you the output from standard output and standard error for these commands, unless you redirect standard output or standard error. Note When entries are made to a crontab file by using the crontab command, all previous entries in the file are removed. You can use the crontab command if your user name appears in the /usr/lib/cron/cron.allow file. If that file does not exist, the crontab command checks the /usr/lib/cron/cron.deny file to determine if you should be denied access to crontab. The allow/deny files contain one user name per line. If neither file exists, you can submit a job only if you are operating with superuser authority. Each crontab file entry consists of a line with six fields, separated by spaces and tabs. The information in the fields specifies when the command runs and the name of the command. The fields specify the following: The first field specifies the minute (0 to 59). The second field specifies the hour (0 to 23). The third field specifies the day of the month (1 to 31). The fourth field specifies the month of the year (1 to 12). The fifth field specifies the day of the week (0 to 6 for Sunday to Saturday). The sixth field specifies the shell com- mand to be executed. You can specify the following values in the fields that indicate the time: An integer (within the appropriate range of values) Two integers separated by a dash to indicate an inclusive range A list of integers separated by commas An asterisk to select all possible values You can specify the days on which the command is to execute in two fields (day of the month and day of the week). You can specify both fields, or you can specify only one field. To use only one field to specify the days, the other field should contain an asterisk (*). If both methods are used, the command is executed whenever either of the specifications is met. [Tru64 UNIX] For example, the following entry runs command at midnight on the first and fifteenth days of each month, as well as every Monday: 0 0 1,15 * 1 command The cron program runs the command named in the sixth field at the specified date and time. If you include a percent sign (%) in the sixth field, cron treats everything that precedes it (in that field) as the command invocation, and makes all that follows it available to stan- dard input, unless you escape the percent sign (\%) or double quote it ("%"). An exclamation point (!) in the sixth field is translated as a newline character. The shell runs only the first line of the command field (up to a percent sign or End-of-Line). All other lines are made available to the command as standard input. The cron program invokes a subshell from your $HOME directory. This means that it will not run your file. If you schedule a command to run when you are not logged in and you want to have commands in your run, you must explicitly do so in the crontab file. (For a more detailed discussion of how sh can be invoked, see the sh command.) The cron program supplies a default environment for every shell, defining HOME, LOGNAME, SHELL (=/usr/bin/sh), and PATH (=:/usr/bin). [Tru64 UNIX] To submit commands to the cron daemon, invoke the crontab command with the -e option, or perform the following tasks: [Tru64 UNIX] Become the user that corresponds to the appropriate file in the /usr/spool/cron/crontabs directory. For example, if you want to submit commands that will run under adm authority, become user adm. [Tru64 UNIX] Use the crontab command with the -l option to copy the appropriate file from the /usr/spool/cron/crontabs directory to a temporary file in your home directory. For example, if you are user adm, you could use the following command: crontab -l > temp_adm [Tru64 UNIX] Edit the temporary file and add the commands you want to run at a specified time. [Tru64 UNIX] Use the crontab command and specify the temporary file to submit the commands to the cron daemon. NOTES
When entries are made to a crontab file, all previous entries are erased. If your user ID is associated with more than one user name, crontab uses the first user name that appears in the /etc/passwd file, regardless of which user name you might actually be using. [Tru64 UNIX] The file /usr/lib/cron is a symbolic link to /var/adm/cron. [Tru64 UNIX] If cron.allow exists, the superuser's user name must appear there for that superuser to be able to use the command. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
The following example writes the time to the console every hour on the hour: 0 * * * * echo The hour is `date`. >/dev/console The following example runs calendar at 6:30 a.m. every Monday, Wednesday, and Friday: 30 6 * * 1,3,5 /usr/bin/calendar - The following example writes the contents of happyholidays.txt to all users logged in at 4:00 p.m. each Friday in December and each day between December 10 and December 31 inclusive: 0 16 10-31 12 5 /usr/sbin/wall /var/tmp/happyholidays.txt ENVIRONMENT VARIABLES
The following environment variables affect the execution of crontab: Determines the editor used with the -e option. Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization variables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte char- acters in arguments). Determines the locale for the format and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. FILES
Main cron directory. Directory containing the crontab files adm, cronuucp, root, sys,and uucp. List of allowed users. List of denied users. Log of cron activity. Queue description file for at, batch, and cron. Contains user information. User profile. SEE ALSO
Commands: at(1), cron(8), mail(1), mailx(1), Bourne shell sh(1b), POSIX shell sh(1p) Files: queuedefs(4) Standards: standards(5) crontab(1)
All times are GMT -4. The time now is 04:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy