go代码,周期任务写入crontab定时执行函数
时间: 2024-03-06 20:49:53 浏览: 21
可以使用Go语言的`github.com/robfig/cron`库来实现周期任务的定时执行。以下是一个简单的示例代码:
```go
package main
import (
"fmt"
"time"
"github.com/robfig/cron"
)
func main() {
c := cron.New()
// 添加一个每分钟执行一次的任务
c.AddFunc("* * * * *", func() {
fmt.Println("执行任务:每分钟执行一次")
})
// 添加一个每天凌晨3点执行的任务
c.AddFunc("0 3 * * *", func() {
fmt.Println("执行任务:每天凌晨3点执行")
})
// 启动定时器
c.Start()
// 等待5分钟之后停止定时器
time.Sleep(5 * time.Minute)
c.Stop()
}
```
在上面的代码中,我们首先创建了一个`cron.Cron`对象`c`,然后使用`AddFunc`方法向定时器中添加需要执行的任务。其中,第一个参数是一个`cron`表达式,用于指定任务的执行时间,第二个参数是一个函数,表示需要执行的任务。
最后,我们使用`Start`方法启动定时器,让它开始执行任务。为了方便测试,我们在代码中加入了一个`time.Sleep`方法,让定时器执行5分钟之后自动停止。
相关问题
linux shell编程 用crontab周期执行函数
您可以在 Linux Shell 编写一个函数,然后使用 crontab 周期性地执行该函数。
以下是一个示例函数,该函数将当前日期和时间写入文件 "/tmp/date.log" 中:
```bash
function log_date {
date >> /tmp/date.log
}
```
要使用 crontab 周期性地执行该函数,可以按照以下步骤操作:
1. 打开 crontab 编辑器:
```bash
crontab -e
```
2. 在编辑器中添加一个新的 cron 任务,该任务将使用您的函数:
```bash
* * * * * /bin/bash -c 'source /path/to/your/script.sh && log_date'
```
该 crontab 任务将每分钟执行一次,使用 `/bin/bash` 解释器执行您的脚本,然后调用您的函数 `log_date`。
3. 保存并退出编辑器。
现在您的函数将每分钟执行一次,并将日期和时间写入文件 "/tmp/date.log" 中。
怎么使用crontab定时执行任务
您可以使用以下命令来编辑 crontab 文件:
```
crontab -e
```
然后,您可以按照以下格式添加定时任务:
```
* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of the week (0 - 7) (Sunday is both 0 and 7)
| | | ------- Month (1 - 12)
| | --------- Day of the month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
```
例如,如果您想要每天早上 6 点执行一个名为 `backup.sh` 的脚本,您可以添加以下行:
```
0 6 * * * /path/to/backup.sh
```
然后保存并退出 crontab 文件即可。