Run command every second in Bash?

后端 未结 3 2040
闹比i
闹比i 2020-12-14 05:37

I want to write some image downloader and assign it on bash. What I have and what I need:

I have:

  1. Command, which works fine (something like wget
相关标签:
3条回答
  • 2020-12-14 05:58

    To add my two cents to this... If the cron's one minute interval is too long for you, you can take advantage of the systemd's capability to restart services repeatedly.

    [Unit]
    Description=Poll something each second
    
    [Service]
    Type=simple
    ExecStart=/opt/poller/poll.sh
    Restart=always
    RestartSec=1
    StartLimitInterval=0
    
    [Install]
    WantedBy=multi-user.target
    

    I know it's a messy and sort of "never ever do this" approach. But it works perfectly an is fairly simple to set up.

    0 讨论(0)
  • 2020-12-14 06:11

    If you want to run a command at one second intervals (one second between the end of one command and the beginning of the next, which is not the same as running every second), just do:

    while sleep 1; do cmd; done
    

    If you want that to start on reboot, the method will depend on your system.

    0 讨论(0)
  • 2020-12-14 06:15

    The command watch will do this for you straight up. It also displays the result in a nice way.

    $ watch -n 1 date
    

    Substitute date for your command. The -n option specifies the interval in seconds.

    0 讨论(0)
提交回复
热议问题