bash script to run in 5 minutes

24,700

Solution 1

You are executing the script immediately and sending its output into at. You need to send the name of the script itself into at:

echo /path/to/my/script | at now + 5 min

Solution 2

how about:

sleep 300 && /path/to/my/script

Solution 3

at -f /path/to/my/script -t now +5 minutes

This should work as far as scheduling a script to run at a specific time. For any more information on the "at" command try linuxmanpages.com. I may be wrong thought ( currently not at a linux system to test ).

Good luck anyways

Solution 4

The problem is you're running the script and piping the output to the at command. What you need to do is run the at command with the path to your script as a parameter. I'm not sure of the syntax, but at -h or man at should help.

Solution 5

Commands are evaluated left to right, so first your script gets executed, the output of it will be piped to the at command, this is normal behaviour. Have look at at the at man pages for more information.

Share:
24,700
James Nine
Author by

James Nine

SOreadytohelp

Updated on July 17, 2022

Comments

  • James Nine
    James Nine almost 2 years

    I just want a bash script to run 5 minutes after it's called. What am I doing wrong?

    I have the command:

    /path/to/my/script | at now + 5 min
    

    And yet the script runs right away every time.