golang启用cron的定时任务
星期三, 2019-12-11 | Author: Lee | golang | 2,269 views
0.起因用golang写了个自动备份mysql数据库的工具
把原来用shell脚步写的工具,封装成可执行文件,配置对应的密码参数即可自动执行,方便数据的自动备份
现在都用云数据库了,这种脚本也越来越不需要用了,直接保留镜像就好了,从小网站节省成本还是需要做的,只做全量备份即可.
闲话:还准备自动同步备份文件到多台机器,感觉golang写工具还是爽哉,想要工具可以赞赏我哈^-^
1.工具要用到定时执行启用cron
使用 https://github.com/robfig/cron 这个包,它实现了 cron 规范解析器和任务运行器
具体使用可以参加起使用说明,新版已经不直接支持秒的功能需要启用秒需要 c :=cron.New(cron.WithSeconds())即可
2.使用示例
package main import ( "log" "time" "github.com/robfig/cron" ) func main() { log.Println("Cron Starting...") c :=cron.New(cron.WithSeconds()) //每5秒执行print5 c.AddFunc("*/5 * * * * *", print5) c.Start() // 检查cron任务条目的下一个和上一个运行时间 //inspect(c.Entries()) //停止定时任务(不停止已经运行的任务) defer c.Stop() //select{} //对比cron 此根据当前时间延续10秒,cron为整5执行,稍微不同 t1 := time.NewTimer(time.Second * 10) for { select { case <-t1.C: t1.Reset(time.Second * 10) print10() } } } func print10() { log.Println("Run 10s gap") } func print5(){ log.Println("Run 5s gap") } |
3.附上原shell脚步的cron信息
vi /etc/crontab #每个星期日凌晨3:00执行完全备份脚本 0 3 * * 0 /home/mysql/databak.sh >/dev/null 2>&1 #周一到周六凌晨3:00做增量备份 0 3 * * 1-6 /home/mysql/binlogbak.sh >/dev/null 2>&1 |
文章作者: Lee
本文地址: https://www.pomelolee.com/1969.html
除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址
No comments yet.
Leave a comment
Search
相关文章
热门文章
最新文章
文章分类
- ajax (10)
- algorithm-learn (3)
- Android (6)
- as (3)
- computer (85)
- Database (30)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (5)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (186)
- linux (143)
- mac (10)
- movie-music (11)
- pagemaker (36)
- php (50)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (2)
- 低代码 (1)
- 体味生活 (40)
- 前端 (21)
- 大数据 (8)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)