{"id":2400,"date":"2019-05-25T06:51:57","date_gmt":"2019-05-24T21:51:57","guid":{"rendered":"http:\/\/matoken.org\/blog\/?p=2400"},"modified":"2019-06-01T16:58:39","modified_gmt":"2019-06-01T07:58:39","slug":"try-cronv-which-gives-a-clear-view-of-crontabs-execution-timing","status":"publish","type":"post","link":"https:\/\/matoken.org\/blog\/2019\/05\/25\/try-cronv-which-gives-a-clear-view-of-crontabs-execution-timing\/","title":{"rendered":"crontab \u306e\u5b9f\u884c\u30bf\u30a4\u30df\u30f3\u30b0\u3092\u308f\u304b\u308a\u3084\u3059\u304f\u8868\u793a\u3057\u3066\u304f\u308c\u308b cronv \u3092\u8a66\u3059"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\u3061\u3087\u3063\u3068\u8a66\u3057\u305f\u3089\u5c11\u3057\u5d4c\u3063\u305f\u306e\u3067\u30e1\u30e2\u304c\u3066\u3089\uff0e<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/takumakanari\/cronv\">GitHub &#8211; takumakanari\/cronv: A visualizer for CRONTAB<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">build<\/div>\n<div class=\"content\">\n<pre>$ go get github.com\/takumakanari\/cronv\/cronv\r\n$ go build -o .\/cronv github.com\/takumakanari\/cronv\/cronv<\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">Usage<\/div>\n<div class=\"content\">\n<pre>$ .\/cronv -h\r\nUsage:\r\n  Cronv v0.4.1 [OPTIONS]\r\n\r\nApplication Options:\r\n  -o, --output=    path to .html file to output (default: .\/crontab.html)\r\n  -d, --duration=  duration to visualize in N{suffix} style. e.g.) 1d(day)\/1h(hour)\/1m(minute) (default: 6h)\r\n      --from-date= start date in the format '2006\/01\/02' to visualize (default: 2019\/05\/25)\r\n      --from-time= start time in the format '15:04' to visualize (default: 02:50)\r\n  -t, --title=     title\/label of output (default: Cron Tasks)\r\n  -w, --width=     Table width of output (default: 100)\r\n\r\nHelp Options:\r\n  -h, --help       Show this help message<\/pre>\n<\/div>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u5b9f\u884c<\/div>\n<div class=\"content\">\n<pre>$ crontab -l | .\/cronv<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<blockquote>\n<div>\n<p>2019-06-01 ADD: \u4ee5\u4e0b\u306etab \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u3068\u306a\u308b\u554f\u984c\u306f\u4fee\u6b63\u3055\u308c\u307e\u3057\u305f&#x1f616;<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/takumakanari\/cronv\/issues\/37#event-2382472153\">It is an error to use tabs as crontab delimiters. \u00b7 Issue #37 \u00b7 takumakanari\/cronv<\/a><\/li>\n<\/ul>\n<\/div>\n<\/blockquote>\n<p>\u3057\u304b\u3057\uff0c<code>missing field(s)<\/code> \u3068\u304b <code>syntax error in year field:<\/code> \u3068\u304b\u306e\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3057\u307e\u3046\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ printf \"* * * * *\\tcommand\\n\"\r\n* * * * *       command\r\n$ printf \"* * * * *\\tcommand\\n\" | .\/cronv\r\npanic: Failed to analyze cron '* * * * *        command': syntax error in year field: 'command'\r\n\r\ngoroutine 1 [running]:\r\npanic\r\n        ..\/..\/..\/src\/libgo\/go\/runtime\/panic.go:554\r\nmain.main\r\n        \/home\/mk\/go\/src\/github.com\/takumakanari\/cronv\/cronv\/main.go:33<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u30bf\u30d6\u533a\u5207\u308a\u3092\u3084\u3081\u3066\u30b9\u30da\u30fc\u30b9\u533a\u5207\u308a\u306b\u3059\u308b\u3068\u30a8\u30e9\u30fc\u304c\u51fa\u306a\u3044<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ printf \"* * * * * command\\n\" | .\/cronv\r\n[Cron Tasks] 1 tasks.\r\n[Cron Tasks] '.\/crontab.html' generated.<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3068\u308a\u3042\u3048\u305a\u30bf\u30d6\u3092\u30b9\u30da\u30fc\u30b9\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u306b\u3057\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ crontab -l | tr -s '\\t' ' ' | .\/cronv\r\n[Cron Tasks] 8 tasks.\r\n[Cron Tasks] '.\/crontab.html' generated.<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\u4f5c\u6210\u3055\u308c\u305f <code>crontab.html<\/code> \u3092 w3m \u3067\u2026\u2026\u307b\u3068\u3093\u3069\u8868\u793a\u3055\u308c\u306a\u3044\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/cH8qt138\/20190525-03-36-35-001.png\" alt=\"20190525 03 36 35 001\"\/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3082\u3046\u5c11\u3057\u30ea\u30c3\u30c1\u306a JavaScript \u306e\u52d5\u304f\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u958b\u304f\u3068OK\uff0e<br \/>\n\u3053\u308c\u304b\u3089\u306e6\u6642\u9593\u5206\u306e\u69d8\u5b50\u304c\u898b\u3048\u308b\uff0e<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/prNwfNQc\/20190525-03-00-01-001.png\" alt=\"20190525 03 00 01 001\"\/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>-d, --duration<\/code> option \u3067\u8868\u793a\u3059\u308b\u6642\u9593\u9593\u9694\u304c\u6307\u5b9a\u3067\u304d\u308b\uff0e<br \/>\n\u958b\u59cb\u65e5\u6642\u306f\uff0c<code>--fron-date<\/code>, <code>--from-time<\/code> option \u3067\u6307\u5b9a\u3067\u304d\u308b\uff0e<br \/>\n\u4ee5\u4e0b\u306e\u4f8b\u3067\u306f 2019-05-25 00:00:00 \u304b\u30891\u65e5\u5206\u306e\u8868\u793a\u306b\u306a\u308b\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre>$ crontab -l | tr -s '\\t' ' ' | .\/cronv -d 1d --from-date=2019\/05\/25 --from-time=00:00<\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/yxFwnfv1\/20190525-02-58-37-001.png\" alt=\"20190525 02 58 37 001\"\/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\u3061\u306a\u307f\u306b1\u30f6\u6708\u3082\u8a66\u3057\u305f\u304c\uff0c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u8868\u793a\u3059\u308b\u306e\u306b\u3068\u3066\u3082\u6642\u9593\u304c\u639b\u304b\u3063\u305f\uff0e<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"title\">\u74b0\u5883<\/div>\n<div class=\"content\">\n<pre>$ dpkg-query -W cron gccgo-go\r\ncron    3.0pl1-128.1ubuntu1\r\ngccgo-go        2:1.10~4ubuntu1\r\n$ lsb_release -d\r\nDescription:    Ubuntu 18.04.2 LTS\r\n$ uname -m\r\nx86_64<\/pre>\n<\/div>\n<\/div>\n<p><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=matokensmeme-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B07QHHSPHW&#038;linkId=6040689f041fe1c04295a416bab1b509\"><\/iframe><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=matokensmeme-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B07QBYYT1M&#038;linkId=98f55ee9a0f2e2813b8eefddad531039\"><\/iframe><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=matokensmeme-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B07LBYRP7J&#038;linkId=ec212f81b7749a97732983b77aa821aa\"><\/iframe><iframe style=\"width:120px;height:240px;\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" frameborder=\"0\" src=\"\/\/rcm-fe.amazon-adsystem.com\/e\/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=matokensmeme-22&#038;language=ja_JP&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=as_ss_li_til&#038;asins=B07CM2YNVD&#038;linkId=872a97b52e697a8ff82d89efb1154fc1\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3061\u3087\u3063\u3068\u8a66\u3057\u305f\u3089\u5c11\u3057\u5d4c\u3063\u305f\u306e\u3067\u30e1\u30e2\u304c\u3066\u3089\uff0e GitHub &#8211; takumakanari\/cronv: A visualizer for CRONTAB build $ go get github.com\/ta [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[372,6,63],"tags":[399,463],"class_list":["post-2400","post","type-post","status-publish","format-standard","hentry","category-bionic-beaver18-04lts","category-linux","category-ubuntu","tag-crontab","tag-cronv"],"_links":{"self":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/comments?post=2400"}],"version-history":[{"count":0,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/posts\/2400\/revisions"}],"wp:attachment":[{"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/media?parent=2400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/categories?post=2400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matoken.org\/blog\/wp-json\/wp\/v2\/tags?post=2400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}