Sponsored Content
Top Forums Shell Programming and Scripting Writing a script to run weekly/monthly - check for weekday or day-of-the-month Post 302623721 by agama on Saturday 14th of April 2012 11:56:16 AM
Old 04-14-2012
Here's a simple way to determine if it's the last day of the month.

Code:
#!/bin/ksh

dim=( 00 31 28 31 30 31 30 31 31 30 31 30 31 )  # one based, days in month

# capture information from date: day or week, month, day, year
dinfo=( $(date "+%w %m %d %Y" ) )
dow=${dinfo[0]}
mon=${dinfo[1]}
dnum=${dinfo[2]}
year=${dinfo[3]}

# the previous 5 lines can be reduced to this if you are using ksh
#date "+%w %m %d %Y" | read dow mon dnum year


if (( year % 4 == 0  &&  (year / 100 != 0 || year/400 == 0) ))  # adjust if leapyear
then
    (( dim[2]++ ))
fi

eom=0                       # default to end of month false
if (( dnum == dim[mon] ))
then
    eom=1
fi

if (( eom ))    # end of month check
then
    echo "it's end of month"
else
    echo "it's not end of month"
fi

if (( dow == 0 ))
then
    echo "it's Sunday"
else
    echo "it's not Sunday"
fi



You can also assign the day of week as a number directly from the output of the date command -- you don't need to translate the name into a number.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Write a shell script to find whether the first day of the month is a working day

Hi , I am relatively new to unix... Can u pls help me out to find out if the first day of the month is a working day ie from (Monday to Friday)...using Date and If clause in Korn shell.. This is very urgent. Thanks for ur help... (7 Replies)
Discussion started by: phani
7 Replies

2. Shell Programming and Scripting

Cron to run first day of month to calculate date 3 months ago

Hi, I would like to find out how can i calculate a date which is 3 months ago. I intend to run a cron job on the 1st of every month, and calculate the month 4 months earlier from the date. For example, if today's date is 1st May 2007, i would like to return 012007( January 2007). i can get... (1 Reply)
Discussion started by: new2ss
1 Replies

3. UNIX for Dummies Questions & Answers

cron script -run every 2nd day of month except Monday

I know I can't schedule this in cron and would have to write a wrapper around my script and schedule it in cron ....but not sure how do to this? How do I exclude Monday if the 2nd day of the month falls on a Monday? Thanks. I tried this: 0 0 2 * 0,2-6 command And I know this doesnt... (2 Replies)
Discussion started by: newtou
2 Replies

4. Shell Programming and Scripting

crontab entry to run every last day of the month

i've created a script which should run every last day of the month. what would be the exact crontab entry for this? thanks! (9 Replies)
Discussion started by: tads98
9 Replies

5. Shell Programming and Scripting

Script to find previous month last day minus one day timestamp

Hi All, I need to find the previous month last day minus one day, using shell script. Can you guys help me to do this. My Requirment is as below: Input for me will be 2000909(YYYYMM) I need the previous months last day minus 1 day timestamp. That is i need 2000908 months last day minus ... (3 Replies)
Discussion started by: girish.raos
3 Replies

6. Shell Programming and Scripting

Script to check if last modified day is previous day

Hi, I would like to write a script that checks if a file ('counter') was modified the previous day, if so erase its contents and write 00000000 into it. For e.g. if the file 'counter' was last modified at 11.30pm on 24th May and the script runs at 12.15am of 25th May, it should erase it's... (1 Reply)
Discussion started by: hegdepras
1 Replies

7. Shell Programming and Scripting

Script to counting a specific word in a logfile on each day of this month, last month etc

Hello All, I am trying to come up with a shell script to count a specific word in a logfile on each day of this month, last month and the month before. I need to produce this report and email it to customer. Any ideas would be appreciated! (5 Replies)
Discussion started by: pnara2
5 Replies

8. Shell Programming and Scripting

run the script for last day of the month

Hello Experts, I have a script which i want to run the on last day of every month. let say I have backup.sh script which i want to run it every month last day. Can anyone please help :confused: thanks (4 Replies)
Discussion started by: aks_1902
4 Replies

9. Shell Programming and Scripting

Need help in running script on last day of month

Hello Experts/Guru, I need a help in running the script on every month last day.... PS: due to some constrain I can't schedule in crontab Requirement: On Jan 31st i want to run some script, similarly on Feb 28th, March 31st, April 30th......till Dec 31st. Please help me by providing... (3 Replies)
Discussion started by: aks_1902
3 Replies

10. Shell Programming and Scripting

Script to run on 2 4 and 7 day of the month

I am looking for a unix script which could run a job on 2, 4 and 7 working day of the month. if the days are falling on the saturday/sunday. it should run on the next day. Thank you.. (9 Replies)
Discussion started by: tradingspecial
9 Replies
PERIODIC.CONF(5)					      BSD File Formats Manual						  PERIODIC.CONF(5)

NAME
periodic.conf -- periodic job configuration information DESCRIPTION
The file periodic.conf contains a description of how daily, weekly and monthly system maintenance jobs should run. It resides in the /etc/defaults directory and parts may be overridden by a file of the same name in /etc, which itself may be overridden by the /etc/periodic.conf.local file. The periodic.conf file is actually sourced as a shell script from each of the periodic scripts and is intended to simply provide default con- figuration variables. The following variables are used by periodic(8) itself: local_periodic (str) List of directories to search for periodic scripts. This list is always prefixed with /etc/periodic, and is only used when an argument to periodic(8) is not an absolute directory name. <dir>_output (path or list) What to do with the output of the scripts executed from the directory dir. If this variable is set to an absolute path name, output is logged to that file, otherwise it is taken as one or more space separated email addresses and mailed to those users. If this variable is not set or is empty, output is sent to standard output. For an unattended machine, suitable values for daily_output, weekly_output, and monthly_output might be ``/var/log/daily.log'', ``/var/log/weekly.log'', and ``/var/log/monthly.log'' respectively, as newsyslog(8) will rotate these files (if they exists) at the appropriate times. <dir>_show_success <dir>_show_info <dir>_show_badconfig (bool) These variables control whether periodic(8) will mask the output of the executed scripts based on their return code (where dir is the base directory name in which each script resides). If the return code of a script is '0' and <dir>_show_success is set to ``NO'', periodic(8) will mask the script's output. If the return code of a script is '1' and <dir>_show_info is set to ``NO'', periodic(8) will mask the script's output. If the return code of a script is '2' and <dir>_show_badconfig is set to ``NO'', periodic(8) will mask the script's output. If these variables are set to neither ``YES'' nor ``NO'', they default to ``YES'', ``YES'' and ``NO'' respectively. Refer to the periodic(8) manual page for how script return codes are interpreted. The following variables are used by the standard scripts that reside in /etc/periodic/daily: daily_clean_tmps_enable (bool) Set to ``YES'' if you want to clear temporary directories daily. daily_clean_tmps_dirs (str) Set to the list of directories to clear if daily_clean_tmps_enable is set to ``YES''. daily_clean_tmps_days (num) When daily_clean_tmps_enable is set, this must also be set to the number of days old that a file's access and modification times must be before it is deleted. daily_clean_tmps_ignore (str) Set to the list of files that should not be deleted when daily_clean_tmps_enable is set to ``YES''. Wild card characters are permitted. daily_clean_tmps_verbose (bool) Set to ``YES'' if you want the removed files to be reported in your daily output. daily_clean_msgs_enable (bool) Set to ``YES'' if you wish old system messages to be purged. daily_clean_msgs_days (num) Set to the number of days that files must not have been modified before they are deleted. If this variable is left blank, the msgs(1) default is used. daily_clean_rwho_enable (bool) Set to ``YES'' if you wish old files in /var/who to be purged. daily_clean_rwho_days (num) Set to the number of days that files must not have been modified before they are deleted. daily_clean_rwho_verbose (bool) Set to ``YES'' if you want the removed files to be reported in your daily output. daily_accounting_enable (bool) Set to ``YES'' if you want to rotate your daily accounting files. No rotations are necessary unless accounting_enable is enabled in rc.conf(5). daily_accounting_compress (bool) Set to ``YES'' if you want your daily accounting files to be compressed using gzip(1). daily_accounting_save (num) When daily_accounting_enable is set, this may also be set to the number of daily accounting files that are to be saved. The default is ``3''. daily_accounting_flags (str) Set to the arguments to pass to the sa(8) utility (in addition to -s) when daily_accounting_enable is set to ``YES''. The default is -q. daily_status_disks_enable (bool) Set to ``YES'' if you want to run df(1) (with the arguments supplied in daily_status_disks_df_flags). daily_status_disks_df_flags (str) Set to the arguments for the df(1) utility when daily_status_disks_enable is set to ``YES''. daily_status_network_enable (bool) Set to ``YES'' if you want to run netstat -i. daily_status_network_usedns (bool) Set to ``YES'' if you want to run netstat(1) without the -n option (to do DNS lookups). daily_status_rwho_enable (bool) Set to ``YES'' if you want to run uptime(1) (or ruptime(1) if rwhod_enable is set to ``YES'' in /etc/rc.conf). daily_status_mailq_enable (bool) Set to ``YES'' if you want to run mailq(1). daily_status_mailq_shorten (bool) Set to ``YES'' if you want to shorten the mailq(1) output when daily_status_mailq_enable is set to ``YES''. daily_status_include_submit_mailq (bool) Set to ``YES'' if you also want to run mailq(1) on the submit mail queue when daily_status_mailq_enable is set to ``YES''. This may not work with MTAs other than sendmail(8). daily_local (str) Set to a list of extra scripts that should be run after all other daily scripts. All scripts must be absolute path names. The following variables are used by the standard scripts that reside in /etc/periodic/weekly: weekly_whatis_enable (bool) Set to ``YES'' if you want to run /usr/libexec/makewhatis.local. This script regenerates the database used by the apropos(1) command. weekly_local (str) Set to a list of extra scripts that should be run after all other weekly scripts. All scripts must be absolute path names. The following variables are used by the standard scripts that reside in /etc/periodic/monthly: monthly_accounting_enable (bool) Set to ``YES'' if you want to do login accounting using the ac(8) command. monthly_local (str) Set to a list of extra scripts that should be run after all other monthly scripts. All scripts must be absolute path names. FILES
/etc/defaults/periodic.conf The default configuration file. This file contains all default variables and values. /etc/periodic.conf The usual system specific variable override file. /etc/periodic.conf.local An additional override file, useful when /etc/periodic.conf is shared or distributed. SEE ALSO
apropos(1), calendar(1), df(1), diff(1), gzip(1), man(1), msgs(1), netstat(1), nice(1), ac(8), newsyslog(8), periodic(8), sendmail(8) HISTORY
The periodic.conf file appeared in FreeBSD 4.1. AUTHORS
Brian Somers <brian@Awfulhak.org> BSD
May 12, 2007 BSD
All times are GMT -4. The time now is 10:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy