In the world of Linux, automating tasks is a common practice. From system updates to data backups, automation can save you a significant amount of time and ensure tasks are performed consistently. In this article, we will focus on how to automatically run a command every 5 minutes using the Linux command line. We will explore several methods including creating a bash script with an infinite loop, setting up a cron job, using the watch command, and looping with a limit.
To automatically run a command every 5 minutes in Linux command line, you have several options. You can create a bash script with an infinite loop, set up a cron job, use the watch command, or loop with a limit. Each method has its own advantages and suitability depending on your specific needs.
Bash Script with Infinite Loop
A bash script is a file that contains a sequence of commands for a Linux command line interpreter. An infinite loop, as the name suggests, is a loop that continues indefinitely. When combined, we can use them to execute a command every 5 minutes.
Here’s an example of a bash script with an infinite loop:
In this script,
#!/bin/sh is the shebang which is used to specify the interpreter for script execution.
while true initiates an infinite loop.
acd_cli sync is the command we want to run (replace it with your desired command).
sleep 300 causes the loop to pause for 300 seconds (5 minutes) before running the command again.
Save this script in a file, for example,
/usr/local/bin/amazon-sync. Make the script executable by running
sudo chmod +x /usr/local/bin/amazon-sync. Then, you can manually run the script by typing
amazon-sync in a terminal.
Cron is a time-based job scheduler in Unix-like operating systems. Users can schedule jobs (commands or scripts) to run at specific times or on specific days.
To schedule a command to run every 5 minutes, open a terminal and run
crontab -e to edit the cron schedule for the current user. Add the following line to the file:
*/5 * * * * /path/to/your/command
*/5 specifies that the job should be run every 5 minutes. The asterisks correspond to different time units: minute (0 – 59), hour (0 – 23), day of the month (1 – 31), month (1 – 12), and day of the week (0 – 7, where both 0 and 7 are Sunday). Replace
/path/to/your/command with the actual command you want to run.
watch command is used to run any designated command at regular intervals. It’s useful when you want to monitor the output of a command over a period of time.
Here’s how to use the
watch command to run a command every 5 minutes:
watch -n 300 acd_cli sync
In this command,
-n 300 sets the interval at which the command should be run (300 seconds or 5 minutes).
acd_cli sync is the command to be executed (replace it with your command).
Looping with a Limit
If you want to run the command a specific number of times, you can use a loop with a limit. Here are a couple of examples:
for (( i=0; i<=20; i++)); do
This will run the command 20 times, with a 5-minute delay between each execution.
for i in $(seq 20); do
This will also run the command 20 times, with a 5-minute delay between each execution.
In both examples,
acd_cli sync is the command to be executed and
sleep 300 causes a 5-minute delay between each execution.
In conclusion, Linux provides several ways to automate the execution of a command every 5 minutes. The method you choose will depend on your specific needs and familiarity with Linux commands. Always remember to replace
acd_cli sync with your actual command. Happy automating!
To check if a bash script is running, you can use the
pgrep command followed by the name of the script. For example, to check if a script named "myscript.sh" is running, you can run
pgrep myscript.sh. If the script is running, it will return the process ID (PID) of the script. If nothing is returned, it means the script is not currently running.
To stop a running bash script, you can use the
kill command followed by the process ID (PID) of the script. First, you need to find the PID of the script using the
pgrep command. For example, if the script’s name is "myscript.sh", you can run
pgrep myscript.sh to get the PID. Then, use the PID with the
kill command like this:
kill PID. This will send a termination signal to the script and it will stop running.