Automating your maintenance: Difference between revisions
DaveTarrant (talk | contribs) No edit summary |
No edit summary |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Management]] | |||
==Crontab== | |||
Crontab is the unix command which allows you to execute commands at predetermined times: | |||
===Creating a crontab=== | |||
The best way to do this is to use "cron" which is an integral part of most UNIX systems. | |||
To set up cron, run (as the eprints user): | |||
eprints@host% crontab -e | |||
You have to add one set of crontab entries per repository. | |||
The basic crontab syntax is as follows and should be contained in a file. | |||
* * * * * 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 to [http://www.adminschoice.com/docs/crontab.htm AdminsChoice] for this diagram. | |||
==Generate Scripts== | |||
Outlined in [[Generate Scripts]]. It is advisable to also crontab these scripts to run nightly. | |||
For example (where $EPRINTS_ROOT is the root directory of your EPrints install): | |||
# 00:00 every morning at midnight | |||
0 1 * * * $EPRINTS_ROOT/bin/generate_static repository-name | |||
# 01:00 every morning at 1am | |||
0 1 * * * $EPRINTS_ROOT/bin/generate_views repository-name | |||
# 02:00 every morning at 2am | |||
0 2 * * * $EPRINTS_ROOT/bin/generate_abstracts repository-name | |||
==Alerts== | ==Alerts== | ||
| Line 14: | Line 52: | ||
Note the spacing out so that all 3 don't start at once and hammer the database. You may wish to change the times, but we recommend early morning as the best time to send them (midnight-6am). | Note the spacing out so that all 3 don't start at once and hammer the database. You may wish to change the times, but we recommend early morning as the best time to send them (midnight-6am). | ||
==Embargoed documents== | |||
Automatically remove access restrictions on embargoed documents when the embargo expires. | |||
For example (where $EPRINTS_ROOT is the root directory of your EPrints install): | |||
# 01:15 every morning | |||
15 1 * * * $EPRINTS_ROOT/bin/lift_embargos repository-name | |||
Latest revision as of 13:23, 8 February 2010
Crontab
Crontab is the unix command which allows you to execute commands at predetermined times:
Creating a crontab
The best way to do this is to use "cron" which is an integral part of most UNIX systems.
To set up cron, run (as the eprints user):
eprints@host% crontab -e
You have to add one set of crontab entries per repository.
The basic crontab syntax is as follows and should be contained in a file.
* * * * * 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 to AdminsChoice for this diagram.
Generate Scripts
Outlined in Generate Scripts. It is advisable to also crontab these scripts to run nightly.
For example (where $EPRINTS_ROOT is the root directory of your EPrints install):
# 00:00 every morning at midnight 0 1 * * * $EPRINTS_ROOT/bin/generate_static repository-name # 01:00 every morning at 1am 0 1 * * * $EPRINTS_ROOT/bin/generate_views repository-name # 02:00 every morning at 2am 0 2 * * * $EPRINTS_ROOT/bin/generate_abstracts repository-name
Alerts
To automate sending out these alerts you must add some entries in the crontab (as for views). You need one set of these per archive.
For example (where $EPRINTS_ROOT is the root directory of your EPrints install):
# 00:15 every morning 15 0 * * * $EPRINTS_ROOT/bin/send_alerts repository-name daily # 00:30 every sunday morning 30 0 * * 0 $EPRINTS_ROOT/bin/send_alerts repository-name weekly # 00:45 every first of the month 45 0 1 * * $EPRINTS_ROOT/bin/send_alerts repository-name monthly
Note the spacing out so that all 3 don't start at once and hammer the database. You may wish to change the times, but we recommend early morning as the best time to send them (midnight-6am).
Embargoed documents
Automatically remove access restrictions on embargoed documents when the embargo expires.
For example (where $EPRINTS_ROOT is the root directory of your EPrints install):
# 01:15 every morning 15 1 * * * $EPRINTS_ROOT/bin/lift_embargos repository-name