eolas/neuron/f8981ab1-f587-4bd7-a1a8-aa934a221168/Cron.md

94 lines
1.4 KiB
Markdown
Raw Normal View History

2024-12-09 18:34:15 +00:00
---
tags:
- shell
- Linux
- procedural
---
# Cron
## `cronie`
In Arch Linux I use `cronie` for cron jobs. (There is no cron service installed
by default). Install `cronie` and then enable it in systemd with:
```bash
systemctrl enable --now cronie.service
```
## commands
### List cron jobs
```
crontab -l
```
### Open cron file
```
crontab -e
```
### Check cron log
```bash
journalctl | grep CRON
# Different distros have different loggers
```
## Syntax
```bash
m h d mon dow command
# minute, hour, day of month, day of week, bash script/args
# 0-59, 0-23, 1-31, 1-12, 0-6
```
**Examples**
Run on the hour every hour
```
0 * * * * mysqlcheck --all-databases --check-only-changed --silent
```
At 01:42 every day:
```
42 1 * * * mysqlcheck --all-databases --check-only-changed --silent
```
Every half hour:
```
0,30 * * * * ${HOME}/bash_scripts/automate_commit.sh
```
**Shorthands**
- `@reboot` Run once, at startup
- `@yearly` Run once a year, “0 0 1 1 \*”.\</>
- `@annually` same as @yearly
- `@monthly` Run once a month, “0 0 1 \* \*”
- `@weekly` Run once a week, “0 0 \* \* 0”
- `@daily` Run once a day, “0 0 \* \* \*”
- `@midnight` same as @daily
- `@hourly` Run once an hour, “0 \* \* \* \*”
**Examples**
```
@hourly mysqlcheck --all-databases --check-only-changed --silent
```
**View the logs**
```bash
sudo grep crontab syslog
```