📄 dump.c
字号:
/* * Clumsy hack to take snapshots and dumps. */#include <u.h>#include <libc.h>voidusage(void){ fprint(2, "usage: fossil/dump [-i snap-interval] [-n name] fscons /n/fossil\n"); exits("usage");}char*snapnow(void){ Tm t; static char buf[100]; t = *localtime(time(0)-5*60*60); /* take dumps at 5:00 am */ sprint(buf, "archive/%d/%02d%02d", t.year+1900, t.mon+1, t.mday); return buf;}voidmain(int argc, char **argv){ int onlyarchive, cons, s; ulong t, i; char *name; name = "main"; s = 0; onlyarchive = 0; i = 60*60; /* one hour */ ARGBEGIN{ case 'i': i = atoi(EARGF(usage())); if(i == 0){ onlyarchive = 1; i = 60*60; } break; case 'n': name = EARGF(usage()); break; case 's': s = atoi(EARGF(usage())); break; }ARGEND if(argc != 2) usage(); if((cons = open(argv[0], OWRITE)) < 0) sysfatal("open %s: %r", argv[0]); if(chdir(argv[1]) < 0) sysfatal("chdir %s: %r", argv[1]); rfork(RFNOTEG); switch(fork()){ case -1: sysfatal("fork: %r"); case 0: break; default: exits(0); } /* * pause at boot time to let clock stabilize. */ if(s) sleep(s*1000); for(;;){ if(access(snapnow(), AEXIST) < 0) fprint(cons, "\nfsys %s snap -a\n", name); t = time(0); sleep((i - t%i)*1000+200); if(!onlyarchive) fprint(cons, "\nfsys %s snap\n", name); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -