浅谈Linux几种定时函数的使用
在Linux系统中,定时函数是常用的一种实现方式,可以定时执行一些任务,如定时备份、日志轮换、定时任务等等。本文将介绍Linux系统中几种常用的定时函数及其使用方法。
一、cron
cron
是Linux系统中最常用的定时任务管理工具,可以周期性地执行指定的工作,比如备份、清理等。 cron
使用简单,它的配置文件是 /etc/crontab
,格式如下:
* * * * * [command to be executed]
- - - - -
| | | | |
| | | | +----- day of the week (0 - 6) (Sunday is both 0 and 7)
| | | +------- month (1 - 12)
| | +--------- day of the month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
其中,星号 *
表示匹配任意值。例如,如果你想每天的早上 6:00 自动备份数据,可以在配置文件中添加如下一行:
0 6 * * * /path/to/backup_script.sh
这将会在每天早上 6 点执行备份脚本。
二、at
at
命令也是一种Linux系统中的定时任务调度工具,不同于 cron
的是 at
是一次性的,即只可执行一次。使用 at
命令时,需要指定任务执行时间(即任务启动时间),还需要用标准输入方式指定具体的任务内容。
例如,以下命令会在当前时间 5 分钟之后执行 backup.sh
脚本:
at now + 5 min
> /bin/bash /path/to/backup.sh
> CTRL+D
在命令行中输入 atq
可以查询当前所有正在等待执行的 at
任务。
三、sleep
sleep
命令可以让当前进程暂停若干秒钟,非常适合用于脚本中处理一些时间敏感的任务。它的语法格式如下:
sleep [n]
其中,n
表示暂停的秒数。例如,以下脚本会等待 5 秒钟后再执行命令:
#!/bin/bash
echo "I will sleep 5 seconds before you see me"
sleep 5
echo "Hello, I'm back!"
总结
Linux 系统中有多种定时函数可供选择,每种定时函数都有其适用的场景。cron
可以周期性地执行指定任务, at
可以指定一次性的任务,sleep
可以暂停当前进程若干秒钟。在实际使用中需要结合具体场景进行选择。
示例说明
示例1:使用Cron定时备份MySQL数据库
我们可以使用如下命令将MySQL的备份任务添加进Cron配置文件中:
crontab -e
在打开的文件中添加以下内容:
0 1 * * * /usr/bin/mysqldump -u root -pPassword123 db_name > /opt/backup/db_name_$(date +\%Y-\%m-\%d-\%H\%M\%S).sql
这条命令会在每天凌晨 1 点钟备份数据库,备份文件会以当前时间命名(例如,2018-01-01-010203.sql)。你需要将 Password123
替换为你的 MySQL 密码, db_name
替换为你要备份的数据库名称,将备份文件路径改为你希望保存的目录即可。
示例2:使用Sleep定时重复执行命令
以下脚本会在2秒钟后执行 uptime
命令,并每隔10秒钟执行一次,直到命令被中断为止:
#!/bin/bash
echo "Starting task"
sleep 2
while :
do
uptime
sleep 10
done
你可以将脚本保存为 test.sh
并在命令行中运行。
chmod +x test.sh
./test.sh
执行之后,你会看到系统每10秒钟输出一次运行时间和负载。你可以按 CTRL+C
中断执行。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈linux几种定时函数的使用 - Python技术站