go代码,周期任务写入crontab定时执行函数
时间: 2024-03-06 14:49:53 浏览: 81
可以使用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周期执行函数,并且将函数的值输出
为了周期性地执行函数并输出其结果,您可以将函数的输出重定向到文件中,然后在 crontab 任务中读取该文件并将其输出到标准输出。
以下是一个示例函数,该函数将计算当前日期是一年中的第几天并返回该值:
```bash
function day_of_year {
echo $(date +%j)
}
```
要使用 crontab 周期性地执行该函数并输出其结果,可以按照以下步骤操作:
1. 打开 crontab 编辑器:
```bash
crontab -e
```
2. 在编辑器中添加一个新的 cron 任务,该任务将使用您的函数并将其输出重定向到文件中:
```bash
* * * * * /bin/bash -c 'source /path/to/your/script.sh && day_of_year > /tmp/day_of_year.log'
```
该 crontab 任务将每分钟执行一次,使用 `/bin/bash` 解释器执行您的脚本,然后调用您的函数 `day_of_year` 并将其输出重定向到文件 "/tmp/day_of_year.log" 中。
3. 保存并退出编辑器。
4. 创建一个新的脚本文件,该文件将读取 /tmp/day_of_year.log 文件并将其内容输出到标准输出:
```bash
#!/bin/bash
cat /tmp/day_of_year.log
```
5. 将该脚本文件设置为可执行文件:
```bash
chmod +x /path/to/your/script.sh
```
现在您的函数将每分钟执行一次,并将其输出重定向到文件中。您可以使用另一个脚本文件读取该文件并将其输出到标准输出。如果您希望将输出写入日志文件中,可以将该脚本文件的输出重定向到文件中。
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" 中。
阅读全文