forked from andonome/lk
		
	fix crontabe
This commit is contained in:
		| @@ -4,32 +4,26 @@ tags: [ "Documentation", "Basics" ] | ||||
| --- | ||||
| # Cron | ||||
|  | ||||
| Various services from cron exist, e.g. | ||||
| The crontab program might have various names, like `cronie` or `crond`. | ||||
|  | ||||
| > sudo apt -y install cron | ||||
| > sudo apt search -n ^cron | ||||
|  | ||||
| Start the cronie with | ||||
| Once installed, search for the service name, and start it. | ||||
|  | ||||
| > sudo systemctl list-unit-files | grep cron | ||||
|  | ||||
| > sudo systemctl enable --now cron | ||||
|  | ||||
| Specify a cron job with: | ||||
| You can *e*dit your crontab with: | ||||
|  | ||||
| > cron -e | ||||
| > crontab -e | ||||
|  | ||||
| You can run a script with: | ||||
|  | ||||
| */10 * * * * /home/pi/script.sh | ||||
| ``` | ||||
|  | ||||
| ... which would run every 10 minutes. | ||||
|  | ||||
| To run something as root, do: | ||||
|  | ||||
| > sudo crontab -e | ||||
|  | ||||
| For example, you can update the database, meaning searches with 'locate' command will be faster. | ||||
|  | ||||
| > */30 * * * * /usr/bin/updatedb | ||||
| 39 */3 * * * /usr/bin/updatedb | ||||
|  | ||||
| ``` | ||||
| ## Syntax | ||||
|  | ||||
| `* * * * *` | ||||
| @@ -49,9 +43,70 @@ Doing the same thing, but only in February, would be: | ||||
|  | ||||
| `0 15 * 2 7` | ||||
|  | ||||
| # Testing with runparts | ||||
| ### Full Paths | ||||
|  | ||||
| Executing something requires the full path to where it is, so you cannot simply use `apt update -y`, because cron does not know where `apt` is. | ||||
| Instead, find out where it is: | ||||
|  | ||||
| > type -P apt | ||||
|  | ||||
| `/usr/bin/apt` | ||||
|  | ||||
| Then put that into the crontab: | ||||
|  | ||||
| > sudo crontab -e | ||||
|  | ||||
| `40 */3 * * * /usr/bin/apt update -y` | ||||
|  | ||||
| This will run `apt update -y` as root every 3 hours, at 40 minutes past the hour, e.g. 00:40, 03:40, 06:40. | ||||
|  | ||||
| ## Directories | ||||
|  | ||||
| You can execute a script as root by putting it into a directory, instead of in the tab. | ||||
| Look at the available cron directories: | ||||
|  | ||||
| > ls /etc/cron.\* | ||||
|  | ||||
| ### Testing with runparts | ||||
|  | ||||
| Run-parts runs all executable scripts in a directory. | ||||
|  | ||||
| > run-parts /etc/cron.hourly | ||||
|  | ||||
| ## Tips | ||||
|  | ||||
| ### Variables | ||||
|  | ||||
| Add your `$HOME` to crontab to use scripts. | ||||
| First add `HOME=/home/user`, then you can use syntax like this: | ||||
|  | ||||
| 0 * * * * $HOME/.scripts/myScript.sh | ||||
|  | ||||
| *Remember to test the script by executing that line first*: | ||||
|  | ||||
| > $HOME/.scripts/myScript.sh | ||||
|  | ||||
| You can also add your regular path to your crontab as a variable (see example below). | ||||
| If you're using vim as the editor, just run this at the top of your crontab: | ||||
|  | ||||
| > :r!echo $PATH | ||||
|  | ||||
| ### Location | ||||
|  | ||||
| The crontab files are in `/var/spool/cron/`, so you can backup or restore them. | ||||
|  | ||||
| # Example | ||||
|  | ||||
| ``` | ||||
| HOME=/home/user | ||||
| PATH=/usr/condabin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/user/.local/bin:/home/user/.scripts/:/home/user/.local/bin:/home/user/.scripts/ | ||||
|  | ||||
| 1 0 1 * *    /usr/bin/mkdir -p $HOME/arc/$(date +%Y/%m) | ||||
|  | ||||
| 18 0 1 */3 * $HOME/.scripts/mail-clean.sh | ||||
|  | ||||
| * * * * * ping -c 1 home || mail-pull.sh | ||||
|  | ||||
| 50 18 * * * /usr/bin/timeout 30m /usr/bin/syncthing | ||||
|  | ||||
| ``` | ||||
|   | ||||
| @@ -1,33 +0,0 @@ | ||||
| --- | ||||
| title: "cronie" | ||||
| tags: [ "Documentation", "System" ] | ||||
| --- | ||||
|  | ||||
| Various services from cron exist, e.g. | ||||
|  | ||||
| > sudo apt -y install cronie | ||||
|  | ||||
| start the cronie with | ||||
|  | ||||
| > sudo Systemctl start cronie | ||||
|  | ||||
| start a cron with  | ||||
|  | ||||
| > cron -e | ||||
|  | ||||
| You can run a script with: | ||||
|  | ||||
| */10 * * * * /home/pi/script.sh | ||||
|  | ||||
| ... which would run every 10 minutes. | ||||
|  | ||||
| To run something as root, do: | ||||
|  | ||||
| > sudo crontab -e | ||||
|  | ||||
| For example, you can update the database, meaning searches with 'locate' command will be faster. | ||||
|  | ||||
| > */30 * * * * /usr/bin/updatedb | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user