返回首页
DA系统
C#IDE
文件同步服务
屏保
今天是: 2026-05-05 "立夏" 夏季的第一个节气,表示盛夏时节的正式开始
收藏
任务
排行
道具
勋章
站长QQ
QQ:979119776
如您使用论坛过程中发现任何问题
请点击下方添加站长QQ
联系站长
休闲区
BBS
技术区
C#IDE
文件同步服务
喝茶淡饭
音乐区
视频区
Linux技术交流
Unity 3D、C#技术交流
Windows技术交流
论坛BUG专区
玩家杂谈
BUG专区
建议专区
搜索
搜索
热搜:
linux
技术
Hi~
登录
或
注册
本版
帖子
用户
DA 论坛
»
休闲区
›
技术区
›
Linux技术交流
›
【转载】Linux如何每隔几秒或者每隔几分钟重复执行命令 ...
返回列表
发新帖
查看:
1896
|
回复:
0
[转载]
【转载】Linux如何每隔几秒或者每隔几分钟重复执行命令
[复制链接]
da11
da11
当前离线
积分
68575
发表于 2022-6-15 22:49:44
|
显示全部楼层
|
阅读模式
Linux如何每隔几秒或者每隔几分钟重复执行命令
转载地址:
https://baijiahao.baidu.com/s?id ... r=spider&for=pc
作为Linux系统管理员通常需要在特定时间段内重复运行某些命令。就类似一个定时任务在定时执行某一个操作,下面就来看一下如何在一定周期之内执行相应的命令或者脚本,啥意思呢?举个例子就比如每隔10秒执行一个命令,这该如何做呢?下面就来看一下如何实现吧。
1,使用crontab命令
crontab 命令用于维护 crontab 文件或 cron 表。cron 表包含要在系统上定期运行的命令列表。每个用户都可以有一个 crontab,我们可以在其中创建和修改任务。但是,Cron只能用于一分钟的最小间隔,即如果要间隔10秒运行一次命令,则需要创建60s/10s =6 个cron条目,如果是每隔20秒则创建3个cron条目,每隔30秒则创建2个cron条目。下面是cron表的解释
[root@sharplee creatfile]# crontab -e
* * * * * date >> /home/sharplee/ss.txt
* * * * * (sleep 10; date >> /home/sharplee/ss.txt)
* * * * * (sleep 20; date >> /home/sharplee/ss.txt)
* * * * * (sleep 30; date >> /home/sharplee/ss.txt)
* * * * * (sleep 40; date >> /home/sharplee/ss.txt)
* * * * * (sleep 50; date >> /home/sharplee/ss.txt)
复制代码
通过上图可以看出,命令每隔10s钟执行一次,命令主要是打印出当前的时间重定向到一个文件中。所以打印的文件的值是每隔10s写入一次。
2,使用watch命令
Watch命令允许您定期执行命令或程序,还可以在屏幕上显示输出。这意味着您将能够及时看到程序输出。默认情况下,Watch每隔 2 秒重新运行一次命令/程序。可以很容易地更改间隔以满足定期重复执行命令或者脚本的需求。
[root@sharplee creatfile]#watch -n 10 'date >> /home/sharplee/date.txt'
复制代码
通过上图可以看出通过watch命令也可以实现间隔10秒执行相同的命令。watch命令还可以用于监视内存,以及监视磁盘拷贝等。
[root@sharplee creatfile]# watch free -n
[root@sharplee creatfile]# watch -n 10 df -h
[root@sharplee creatfile]#cp ubuntu-15.10-desktop-amd64.iso /home/tecmint/ && watch -n 0.1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
复制代码
3,使用sleep命令
sleep 命令还可以与 while 循环或 for 循环等循环一起使用,以重复或定期运行命令。打开终端并使用 for 循环,执行以下命令:
[root@sharplee creatfile]# for i in {1..8}; do echo -n "running the command $i time"; sleep 3; done
复制代码
那使用for循环如何实现上面两个例子,把日期输入到一个文本中呢?
[root@sharplee creatfile]# for i in {1..1000}; do date >> testd.txt; sleep 10; done
复制代码
下面来通过while循环实现每隔10s重复执行命令。
[root@sharplee creatfile]# while true; do date >>teste.txt; sleep 10; done
复制代码
总结:本文主要讲解了如何在Linux终端中定期或重复运行命令。从运行命令到每 隔几秒或每小时运行一次脚本,通过小编亲自实践,所有操作都可以使用这三种方法完成。具体场景中请把后面执行的命令换成实际的命令或者脚本即可。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
注册成为修仙之旅的少年~
x
回复
使用道具
举报
置顶卡
沉默卡
变色卡
返回列表
发新帖
游客
回复
*
滑块验证:
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册成为修仙之旅的少年~
发表回复
快速回复
返回顶部
返回列表