每秒运行一次命令

Ego*_*ich 50 bash loops

我想写一些图像下载器并在bash上分配它.我拥有什么和我需要什么:

我有:

  1. 命令,工作正常(类似wget http://mywebcam.com/image.jpg -O /var/cam/Image.jpg)
  2. 根权利

  3. 我的服务器和网络摄像头之间的快速Internet线路

我需要的:

每秒从相机下载图像*(睡1?)*并在其中重写(我的命令做得好)立即 运行此脚本并且不用担心重启(我想我需要用bash命令创建文件并运行它一次+设置crontab"重启"工作到这个文件,对吧?)

也许有人知道我该怎么做?

Wil*_*ell 103

如果要以一秒的间隔运行一个命令(一个命令的结尾和下一个命令的开头之间的一秒,这与每秒运行不一样),只需执行:

while sleep 1; do cmd; done

如果您希望在重新启动时启动,则该方法将取决于您的系统.

  • 区分输出的另一种方法是简单地添加一个时间戳:`while sleep 1; 做日期; CMD; 完成`或者也许是一面旗帜:`睡觉时1; 回声; 回声"**********************"; 日期; CMD; done` (3认同)

whi*_*ile 69

该命令watch将直接为您执行此操作.它还以一种很好的方式显示结果.

$ watch -n 1 date
Run Code Online (Sandbox Code Playgroud)

替代date你的命令.该-n选项指定以秒为单位的间隔.

  • 完善!如果你使用带管道的命令,只需在它周围加上引号:`watch -n 1"du -hs*| sort -h | grep nodes"` (4认同)
  • 并关闭重定向的标头以记录`watch -t -n 1 "du -hs * | sort -h | grep nodes >> nodes.log"` (2认同)