Cron Allows You To Schedule Recurring Tasks, Making It A Great Tool For Running Content Collection Scripts
Before you start working with the cron, decide what you want to do and make sure you know how to make it work from the terminal. If your whole family is doing web scraping or is connected to the API to create a hot dataset, get the .py script and run it correctly and safely in the terminal with the command:
python your_script.py
While you can collect data, your script should print the collected information and store it ininsert for later use. For example, let’s say I’m collecting a tweets dataset using the Twitter API and plan to make sure it always contains the latest tweets from a particular new hashtag. After receiving the tweets from the API, I need to store those tweets somewhere. Since the program can output plain text content, or if I see that you’ve converted the data to a Pandas DataFrame, it’s fairly easy to add a new method using to_csv()
(documentation can be found here). Regardless of how you store your data, your script will make sure to store these newly found files in a predetermined location.
A crontab is a file containing a list of cron jobs and how to run them. To open/edit crontab just use the main command:
crontab -e
-e
is for processing. This should open a Vim window containing all your cron jobs. If you’ve never used cron before, it should look like this:

In the main crontab, enter the cron job you want to run. Click the i
button to insert the first cron job.
Cron Syntax:
The syntax for this cron job can be a bit confusing. Here’s a fresh one:
1-60/15 4 . * * * cd ~/Desktop/live_data && /Users/mitchellkrieger/opt/anaconda3/envs/learn-env/bin/python3 bikecron.py >> ~/Desktop/live_data/logs/log.txt 2>&1
Let’s break this down bit by bit. A simplified cron job with sudocode would look like this:
[time range][cronjob] >> [where it helps logging] 2>&1
Time interval. The part to start with is recording how often the cron job is run. It contains five slots of 60 seconds each, hour, day of the month, month and/or day of the week:
There are 4 basic special characters often used for cron timeslot:
*
specifies any type of value,
separates the values in the given list-
specifies a range of values/
represents the increment between the valueWhat if you want to run each cron job every 30 minutes from 9:00 am to 6:00 pm every two months, you will need to enter 0.30 9-17 5 every October. */2 *
, where 0.30
usually indicates the 0th and 30th minutes of each hour, 9-17
indicates 9:00-17: 00, especially the first is any day of the month.
*/2
is any month, and the last *
is usually any day of the week. Note that Sunday is 0 for the day of the week. Crontab Guru can be a useful tool that translates cron’s exact time format into an English expression if you’re worried about reaching your desired interval with this process syntax.
Cronjob: This section can be run from a terminal. In the example above, I first change to the directory where the script is located on my computer cd ~/Desktop/live_data
and then run it. &&
indicates one of the optional execution actions. Knows that this long file path is for navigation when installing my Python3 executable. If you don’t know where it might be, try the what python
command in a terminal and it should printthis path of facts. Finally, I call my script expression (bikecron.py
) to have Python execute it.
Where to put this tree: Optional, but the last piece of furniture tells cron where to store the manual for potential problems/bugs, which is an effective help when troubleshooting. I have reported log errors to you in your own text file named log.txt
found at this file path. Process 2>&1
accepts standard error (2
), product is redirected (>
) to specified file path (&
> ) and keep the recognized standard (1
). Without this song, you can send an email to cron if there is a problem with a task. I highly recommend using it.
Together:
* * * * * blu-ray ~/navigate/to/directory && Script_to_execute /navigate/to/python3.py >> ~/place/to/store/log.txt You have 2>&1
![]()
After creating a cron job via crontab, save it by pressing
esc
, typing:wq
and hitting the deliver key. This window may appear:
![]()
Press OK. At this point, however, you're all set, so on some Macs, security trends may prevent cron from running. You'll know if this happens because a single
errno1 Operation Not Allowed
error will almost certainly be logged by crontab in the log.txt file. To fix this, go to System > Settings > Security & Privacy > Privacy. Scroll down to see full disk access and access, see cron:
![]()
If you can't find cron, use the + character to find the cron. If you don't know where Cron Live is, try
command
+shift
+G
to unlock Finder Go to Folder ¦ and type/usr/sbin/cron
and pressEnter
.Details of this step. Malware on your computer may try to use cron to create cron jobs, if the combination with cron is disabled as described above, it will block unrestricted access to everything on your computer. If you are not running cron on a treadmill, I recommendI want to disable full access to crondisk by disabling it.
Then they should all be assigned and cron will run your current cron job at the interval you specify, effectively collecting time series data at regular intervals and/or updating the latest data at regular intervals. I recommend after the first periods to check if everything is set up correctly.