Ekman number: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Rememberlands
m Roman dimensionless numbers, math formatting
en>Gorthian
removed Category:Geophysics using HotCat used in many branches of physics, not just geophysics
 
Line 1: Line 1:
{{other uses}}
Very pleased to meet you! Some of my name is Eusebio furthermore I think it to become quite good when buyers say it. My house is now in Vermont and I don't [http://photo.net/gallery/tag-search/search?query_string=program program] on changing it. Software encouraging has been my holiday weekend job for a while. To farrenheit is the only hobby my wife doesn't agree to. I'm not good at web design but you might need to check my website: http://[http://answers.yahoo.com/search/search_result?p=circuspartypanama&submit-go=Search+Y!+Answers circuspartypanama].com<br><br>My web page - [http://circuspartypanama.com clash of clans cheat]
{{refimprove|date=November 2011}}
{{lowercase}}
 
The software utility '''cron''' is a time-based [[job scheduler]] in [[Unix-like]] computer [[operating system]]s. People who set up and maintain software environments use cron to schedule jobs (commands or [[shell script]]s) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like connecting to the [[Internet]] and downloading [[email]] at regular intervals.<ref>{{cite web|url=http://www.unixgeeks.org/security/newbie/unix/cron-1.html |title=Newbie Introduction to cron |publisher=Unixgeeks.org |date= |accessdate=2013-11-06}}</ref> The name ''cron'' comes from the Greek word for time, χρόνος [[chronos]].
 
== Overview ==
Cron is driven by a ''crontab'' (cron table) file, a configuration file that specifies [[Unix shell|shell]] commands to run periodically on a given schedule. The crontab files are stored where the lists of jobs and other instructions to the cron [[Daemon (computer software)|daemon]] are kept. Users can have their own individual crontab files and often there is a system wide crontab file (usually in <code>/etc</code> or a subdirectory of <code>/etc</code>) that only system administrators can edit.
 
Each line of a crontab file represents a job, and is composed of a CRON expression, followed by a shell command to execute. Some cron implementations, such as in the popular [[Berkeley Software Distribution|4th BSD edition]] written by [[Paul Vixie]] and included in many Linux distributions, add a sixth field: an account username that runs the specified job (subject to user existence and permissions). This is allowed only in the system crontabs—not in others, which are each assigned to a single user to configure. The sixth field is alternatively sometimes used for ''year'' instead of an account username—the nncron daemon for Windows does this.
 
While normally the job is executed when the time/date specification fields all match the current time and date, there is one exception: if both "day of month" and "day of week" are restricted (not "*"), then either the "day of month" field (3) or the "day of week" field (5) must match the current day.
 
===Examples===
The following specifies that the Apache error log clears at one minute past midnight (00:01) of every day of the month, of every day of the week, assuming that the default shell for the cron user is [[Bourne shell]] compliant:
 
<source lang="bash">
1 0 * * *  printf > /var/log/apache/error_log
</source>
 
The following line makes the user program <code lang="bash">test.pl</code>—ostensibly a [[Perl]] script—run every two hours, at midnight, 2am, 4am, 6am, 8am, and so on:
 
<source lang="bash">
0 */2 * * *  /home/username/test.pl
</source>
 
Another example showing how to run a shell program called export_dump.sh at 0th minute of 20th hour, every day.
<source lang="bash">
00 20 * * * /home/oracle/scripts/export_dump.sh
</source>
 
===Predefined scheduling definitions===
Several special predefined values can substitute in the cron expression. Note that in some uses of the cron format there is also a seconds field at the beginning of the pattern (e.g. Quartz).
 
{| class="wikitable"
|-
!Entry
!Description
!Equivalent to
|-
|<code>@yearly (or @annually)</code>
|Run once a year at midnight in the morning of January 1
|<code>0 0 1 1  *</code>
|-
|<code>@monthly</code>
|Run once a month at midnight in the morning of the first day of the month
|<code>0 0 1 * * </code>
|-
|<code>@weekly</code>
|Run once a week at midnight in the morning of Sunday
|<code>0 0 * * 0 </code>
|-
|<code>@daily</code>
|Run once a day at midnight
|<code>0 0 * * *</code>
|-
|<code>@hourly</code>
|Run once an hour at the beginning of the hour
|<code>0 * * * *</code>
|-
|<code>@reboot</code>
|Run at startup
|<code>@reboot</code>
|}
 
# * * * * *  command to execute
# ┬ ┬ ┬ ┬ ┬
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
# │ │ │ └────────── month (1 - 12)
# │ │ └─────────────── day of month (1 - 31)
# │ └──────────────────── hour (0 - 23)
# └───────────────────────── min (0 - 59)
 
<code>@reboot</code> configures a job to run once when the daemon is started. Since cron is typically never restarted, this typically corresponds to the machine being booted. This behavior is enforced in some variations of cron, such as that provided in [[Debian]],<ref name="debiancron">{{cite web|url=http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=77563#30 |title=Bugs.debian.org |publisher=Bugs.debian.org |date= |accessdate=2013-11-06}}</ref> so that simply restarting the daemon does not re-run <code>@reboot</code> jobs.
 
<code>@reboot</code> can be useful if there is a need to start up a server or daemon under a particular user, and the user does not have access to configure [[init]] to start the program.
 
=== cron permissions ===
The following two files play an important role:
* '''/etc/cron.allow''' - If this file exists, it must contain your username for you to use cron jobs.
* '''/etc/cron.deny''' - If the cron.allow file does not exist but the /etc/cron.deny file does exist then, to use cron jobs, you must not be listed in the /etc/cron.deny file.
 
Note that if neither of these files exist then, depending on site-dependent configuration parameters, either only the super user can use cron jobs, or all users can use cron jobs.
 
=== Timezone handling ===
Most cron implementations simply interpret crontab entries in the system time zone setting that the cron daemon runs under.  This can be a source of dispute if a large multiuser machine has users in several time zones, especially if the system default timezone includes the potentially confusing [[DST]]. Thus, a cron implementation may as a special-case any "CRON_TZ=&lt;timezone&gt;" environment variable setting lines in user crontabs, interpreting subsequent crontab entries relative to that timezone.<ref name="man 5 crontab">{{cite web|url=http://linux.die.net/man/5/crontab |title=crontab(5): tables for driving cron - Linux man page |publisher=Linux.die.net |date= |accessdate=2013-11-06}}</ref>
 
== History ==
 
=== Early versions ===
The cron in [[Version 7 Unix]], written by [[Brian Kernighan]], was a system service (later called [[Daemon (computer software)|daemons]]) invoked from <code>/etc/inittab</code> when the operating system entered multi-user mode.  Its algorithm was straightforward:
# Read <code>/usr/etc/crontab</code>
# Determine if any commands must run at the current date and time, and if so, run them as the [[superuser]], root.
# Sleep for one minute
# Repeat from step 1.
 
This version of cron was basic and robust but it also consumed resources whether it found any work to do or not. In an experiment at Purdue University in the late 1970s to extend cron's service to all 100 users on a time-shared [[VAX]], it was found to place too much load on the system.
 
=== Multi-user capability ===
<!--
Note to future authors of this content.  I know more about this version of cron, having invented it, and so recognize that the content is out of balance.  It would be great to elaborate more on the other versions
-->
The next version of cron, with the release of [[Unix System V]], was created to extend the capabilities of cron to all users of a Unix system, not just the superuser. Though this may seem trivial today with most Unix and Unix-like systems having powerful processors and small numbers of users, at the time it required a new approach on a one [[instructions per second|MIPS]] system having roughly 100 user accounts.
 
In the August, 1977 issue of the [[Communications of the ACM]], W. R. Franta and Kurt Maly published an article entitled "An efficient data structure for the simulation event set" describing an event queue data structure for discrete event-driven simulation systems that demonstrated "performance superior to that of commonly used simple linked list algorithms," good behavior given non-uniform time distributions, and worst case [[Computational complexity|complexity]] <math>O\left(\sqrt{n}\right)</math>, "n" being the number of events in the queue.
 
A graduate student, Robert Brown, reviewing this article, recognized the parallel between cron and [[discrete event simulation|discrete event simulators]], and created an implementation of the Franta-Maly event list manager (ELM) for experimentation.  Discrete event simulators run in ''virtual time'', peeling events off the event queue as quickly as possible and advancing their notion of "now" to the scheduled time of the next event. Running the event simulator in "real time" instead of virtual time created a version of cron that spent most of its time sleeping, waiting for the scheduled time to execute the task at the head of the event list.
 
The following school year brought new students into the graduate program, including Keith Williamson, who joined the systems staff in the Computer Science department. As a "warm up task" Brown asked him to flesh out the prototype cron into a production service, and this multi-user cron went into use at Purdue in late 1979. This version of cron wholly replaced the <code>/etc/cron</code> that was in use on the computer science department's VAX 11/780 running 32/V.
 
The algorithm used by this cron is as follows:
# On start-up, look for a file named <code>.crontab</code> in the home directories of all account holders.
# For each crontab file found, determine the next time in the future that each command must run.
# Place those commands on the Franta-Maly event list with their corresponding time and their "five field" time specifier.
# Enter main loop:
## Examine the task entry at the head of the queue, compute how far in the future it must run.
## Sleep for that period of time.
## On awakening and after verifying the correct time, execute the task at the head of the queue (in background) with the privileges of the user who created it.
## Determine the next time in the future to run this command and place it back on the event list at that time value.
 
Additionally, the daemon responds to [[SIGHUP]] signals to rescan modified crontab files and schedules special "wake up events" on the hour and half hour to look for modified crontab files. Much detail is omitted here concerning the inaccuracies of computer time-of-day tracking, Unix alarm scheduling, explicit time-of-day changes, and process management, all of which account for the majority of the lines of code in this cron. This cron also captured the output of ''stdout'' and ''stderr'' and e-mailed any output to the crontab owner.
 
The resources consumed by this cron scale only with the amount of work it is given and do not inherently increase over time with the exception of periodically checking for changes.
 
Williamson completed his studies and departed the University with a Masters of Science in Computer Science and joined AT&T Bell Labs in Murray Hill, New Jersey, and took this cron with him. At Bell Labs, he and others incorporated the Unix <code>at</code> command into cron, moved the crontab files out of users' home directories (which were not host-specific) and into a common host-specific spool directory, and of necessity added the <code>crontab</code> command to allow users to copy their crontabs to that spool directory.
 
This version of cron later appeared largely unchanged in [[Unix System V]] and in BSD and their derivatives, the [[Solaris Operating System]] from [[Sun Microsystems]], [[IRIX]] from [[Silicon Graphics]], [[HP-UX]] from [[Hewlett-Packard]], and [[IBM AIX (operating system)|IBM AIX]]. Technically, the original license for these implementations should be with the Purdue Research Foundation who funded the work, but this took place at a time when little concern was given to such matters.
 
=== Modern versions ===
With the advent of the [[GNU Project]] and [[Linux]], new crons appeared. The most prevalent of these is the Vixie cron, originally coded by [[Paul Vixie]] in 1987. Version 3 of '''Vixie cron''' was released in late 1993. Version 4.1 was renamed to '''[[Internet Systems Consortium|ISC]] Cron''' and was released in January 2004. Version 3, with some minor bugfixes, is used in most distributions of Linux and BSDs.
 
In 2007, Red Hat forked vixie-cron 4.1 to the cronie project and included anacron 2.3 in 2009.
 
Other popular implementations include [[anacron]], dcron, and [[fcron]]. However, anacron is not an independent cron program. Another cron job must call it. dcron was made by [[DragonFly BSD]] founder [[Matthew Dillon (computer scientist)|Matt Dillon]], and its maintainership was taken over by Jim Pryor in 2010.<ref>{{cite web|url=https://mailman.archlinux.org/pipermail/arch-general/2010-January/009981.html |title=[arch-general&#93; [arch-dev-public&#93; Cron |publisher=Mailman.archlinux.org |date=2010-01-05 |accessdate=2013-11-06}}</ref>
 
A [[webcron|webcron solution]] schedules recurring tasks to run on a regular basis wherever cron implementations are not available in a [[web hosting service|web hosting]] environment.
 
==CRON expression==
A CRON expression is a string comprising five or six fields separated by white space<ref>{{cite web|url=http://help.ubuntu.com/community/CronHowto |title=Ubuntu Cron Howto |publisher=Help.ubuntu.com |date=2013-05-04 |accessdate=2013-11-06}}</ref> that represents a set of times, normally as a schedule to execute some routine.
 
===Format===
{| class="wikitable"
|-
! Field name
! Mandatory?
! Allowed values
! Allowed special characters
! Remarks
|-
| Minutes
| Yes
| 0-59
| <code>* / , -</code>
| -
|-
| Hours
| Yes
| 0-23
| <code>* / , -</code>
| -
|-
| Day of month
| Yes
| 1-31
| <code>* / , - ? L W</code>
| -
|-
| Month
| Yes
| 1-12 or JAN-DEC
| <code>* / , -</code>
| -
|-
| Day of week
| Yes
| 0-6 or SUN-SAT
| <code>* / , - ? L #</code>
| -
|-
| Year
| No
| 1970–2099
| <code>* / , -</code>
| This field is not supported in standard/default implementations.
|}
 
In some uses of the CRON format there is also a ''seconds'' field at the beginning of the pattern. In that case, the CRON expression is a string comprising 6 or 7 fields.<ref>{{cite web|title=CronTrigger Tutorial|url=http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger|work=Quartz Scheduler Website|accessdate=24 October 2011}}</ref>
 
===Special characters===
Support for each special character depends on specific distributions and versions of cron
 
;Asterisk ( * ): The asterisk indicates that the cron expression matches for all values of the field. E.g., using an asterisk in the 4th field (month) indicates every month.
 
;Slash ( / ): Slashes describe increments of ranges. For example 3-59/15 in the 1st field (minutes) indicate the third minute of the hour and every 15 minutes thereafter. The form "*/..." is equivalent to the form "first-last/...", that is, an increment over the largest possible range of the field.
 
;Percent ( % ): Percent-signs (%) in the command, unless escaped with backslash (\), are changed into newline characters, and all data after the first % are sent to the command  as standard input.<ref>{{cite web|url=http://www.gnu.org/software/mcron/manual/html_node/Crontab-file.html |title=mcron crontab reference |publisher=Gnu.org |date= |accessdate=2013-11-06}}</ref>
 
;Comma {{as written||( , )}}: Commas are used to separate items of a list. For example, using "MON,WED,FRI" in the 5th field (day of week) means Mondays, Wednesdays and Fridays.
 
;Hyphen ( - ): Hyphens define ranges. For example, 2000-2010 indicates every year between 2000 and 2010 AD, inclusive.
 
;L: 'L' stands for "last". When used in the day-of-week field, it allows you to specify constructs such as "the last Friday" ("5L") of a given month. In the day-of-month field, it specifies the last day of the month.
Note: L is a non-standard character and exists only in some cron implementations (Quartz java scheduler)
 
;W: The 'W' character is allowed for the day-of-month field. This character is used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "15W" as the value for the day-of-month field, the meaning is: "the nearest weekday to the 15th of the month." So, if the 15th is a Saturday, the trigger fires on Friday the 14th. If the 15th is a Sunday, the trigger fires on Monday the 16th. If the 15th is a Tuesday, then it fires on Tuesday the 15th. However if you specify "1W" as the value for day-of-month, and the 1st is a Saturday, the trigger fires on Monday the 3rd, as it does not 'jump' over the boundary of a month's days. The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.
Note: W is a non-standard character and exists only in some cron implementations (Quartz java scheduler)
 
;Hash ( # ): '#' is allowed for the day-of-week field, and must be followed by a number between one and five. It allows you to specify constructs such as "the second Friday" of a given month.<ref>{{cite web|url=http://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm |title=Oracle® Role Manager Integration Guide |publisher=Docs.oracle.com |date= |accessdate=2013-11-06}}</ref>
 
;Question mark ( ? ):  Note: Question mark is a non-standard character and exists only in some cron implementations.  It is used instead of '*' for leaving either day-of-month or day-of-week blank.
 
== See also ==
* [[at (Unix)]]
* [[Launchd]]
* [[List of Unix utilities]]
* [[Scheduling (computing)]]
* [[systemd]] – Incorporates crond
 
== References ==
{{Reflist|30em}}
 
== External links ==
*{{man|cu|crontab|SUS|schedule periodic background work}}
* [http://www.gnu.org/software/mcron/ GNU cron] (mcron)
* [ftp://ftp.isc.org/isc/cron/cron_4.1.shar ISC Cron 4.1]
* [https://fedorahosted.org/cronie/ cronie]
* [http://portal.acm.org/citation.cfm?id=359763.359801&coll=ACM&dl=ACM&CFID=63647367&CFTOKEN=55814330 ACM Digital library – Franta, Maly, "An efficient data structure for the simulation event set"] (requires ACM pubs subscription)
* [http://linuxmoz.com/crontab-syntax-tutorial/ Crontab syntax tutorial] - Crontab syntax explained
* [http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/ UNIX / Linux cron tutorial] - a quick tutorial for UNIX like operating systems with sample shell scripts.
* [http://www.markus-gattol.name/ws/time.html#cron All about Cron on one page] - a page covering Cron, starting with theory and ending with many practical examples about its usage.
* [http://www.jimpryor.net/linux/dcron.html Dillon's cron] (dcron)
* [http://crontranslator.appspot.com Cron Expression translator] - Small site that tries to convert a cron tab expression to English
* [http://www.dataphyx.com/cronsandbox CronSandbox - Cron simulator, try out crontab timing values in a sandbox.] - Put in the cron time/date values and get back a list of future run-times.
* [http://www.easycron.com/generator/cronjob Crontab syntax generator] - Choose date/time, enter command, output path and Email address (for receiving notification) to generate a Crontab syntax.
 
{{Unix commands}}
 
[[Category:Standard Unix programs]]
[[Category:Unix SUS2008 utilities]]
[[Category:Unix process and task management-related software]]
[[Category:Wikipedia articles with ASCII art]]

Latest revision as of 19:09, 15 June 2014

Very pleased to meet you! Some of my name is Eusebio furthermore I think it to become quite good when buyers say it. My house is now in Vermont and I don't program on changing it. Software encouraging has been my holiday weekend job for a while. To farrenheit is the only hobby my wife doesn't agree to. I'm not good at web design but you might need to check my website: http://circuspartypanama.com

My web page - clash of clans cheat