diff options
-rw-r--r-- | logfiles-controller.lua | 2 | ||||
-rw-r--r-- | logfiles-model.lua | 61 | ||||
-rw-r--r-- | logfiles-read-html.lsp | 30 |
3 files changed, 48 insertions, 45 deletions
diff --git a/logfiles-controller.lua b/logfiles-controller.lua index 1770754..86d24b9 100644 --- a/logfiles-controller.lua +++ b/logfiles-controller.lua @@ -19,7 +19,7 @@ end -- Public methods read = function (self ) - return ({logfile = self.model:get("/var/log/mini_httpd.log")} ) + return ({logfile = self.model:get("/var/log /tmp/squid/log"), url = ENV["SCRIPT_NAME"] .. self.conf.prefix .. self.conf.controller} ) end --update = function (self) diff --git a/logfiles-model.lua b/logfiles-model.lua index 6964c40..1d18f3f 100644 --- a/logfiles-model.lua +++ b/logfiles-model.lua @@ -2,20 +2,22 @@ module (..., package.seeall) -- no initializer in model - use controller.init for that -local function is_file_in_use( file ) --- local files_opened = io.popen("ls -l $( find /proc/[0-9]*/fd) | egrep 'tmp\|var' - | sed 's/ \+/ /g' | sort") - opens=" ls -l $( find /proc/[0-9]*/fd 2>/dev/null) 2>/dev/null | \ - egrep 'tmp\|var' - | sed 's/ \+/ /g' | \ - cut -f 12" - opens="ls -l `find /proc/[0-9]*/fd 2>&1` 2>&1 | egrep 'tmp|var'" ---ls -l `find /proc/[0-9]*/fd 2>/dev/null` 2>/dev/null | egrep '\-\>' - | sed 's/ \+/ /g' | \ --- cut -f 12" --- cut -f11 -d' ' | sort |uniq " - local files_opened = io.popen(opens) - - local f = files_opened:read("*a") or "unknown" - table.insert ( listed_files , cfe{date="?", name=f, size="?"} ) - +local function file_info ( path ) + local file = io.popen("ls -lh " .. path ) + local file_inuse = io.popen("fuser " .. path ) + split = require("split") + local file_info_result = file:read("*a") or "unknown" + local fileinuseresult = file_inuse:read("*a") or "unkown" + if fileinuseresult == "" then + fileinuseresult = "Delete" + else + fileinuseresult = "in use" + end + local size = rawget(split("%s+", file_info_result),5) + local lastmod = rawget(split("%s+", file_info_result),6) .. " " .. rawget(split("%s+", file_info_result),7) .. " " .. rawget(split("%s+", file_info_result),8) + file:close() + file_inuse:close() + return lastmod,size,fileinuseresult end local function list_files ( path ) @@ -24,41 +26,28 @@ local function list_files ( path ) split = require("split") local files = io.popen("find " .. path .. " -type f | sort") - table.insert ( listed_files , cfe{delete="Delete", save="Save", view="View", size="Size", lastmod="Last Modified", name="File", header="yes"} ) + table.insert ( listed_files , cfe{inuse="Delete", save="Save", view="View", size="Size", lastmod="Last Modified", name="File"} ) if ( files ) then local f = files:read("*a") or "unknown" for k,v in pairs(split("%s", f)) do if v ~= "" then - table.insert ( listed_files , cfe{delete="", save="", view="", size="", lastmod="", name=v, type=""} ) --- table.insert ( listed_files , cfe{date="?", name=v, size="?"} ) + local lastmod,size,fileinuseresult = file_info(v) + if ( fileinuseresult == "Delete" ) then + del="/delete?id=" .. k + else + del=nil + end + table.insert ( listed_files , cfe{inuse=fileinuseresult, del=del, save="", view="/view?id=" .. k, size=size, lastmod=lastmod, name=v, type="", id=k} ) end end files:close() end --- table.insert ( listed_files , cfe{date="---", name="--- Now follows list with open files to compare agains logfile-list ---", size="---"} ) --- table.insert ( listed_files , cfe{delete="Delete", save="Save", view="View", size="Size", lastmod="Last Modified", name="File", type="header"} ) - return listed_files end - -local function read_file ( path ) - local file = io.open(path) - if ( file ) then - local f = file:read("*a") or "unknown" - file:close() - return f - else - return "Cant find '" .. path .. "'" - end -end - get = function (self,path) - local logfile_folders = "/var/log /tmp/squid/log" local logfile_result = {} - logfile_result = list_files(logfile_folders) - file_name = cfe{value=path, name=file_name} - return logfile_result + return list_files( path ) end diff --git a/logfiles-read-html.lsp b/logfiles-read-html.lsp index 9ea7b22..5fe6944 100644 --- a/logfiles-read-html.lsp +++ b/logfiles-read-html.lsp @@ -3,16 +3,30 @@ <body> <h1>Logfiles</h1> <TABLE border=1> -<? for i = 1, table.maxn(view.logfile) do ?> - <TR <? if view.logfile[i].header then ?> class=grey <? end ?>> - <TD "width=55px"><?= view.logfile[i].delete ?></TD> - <TD "width=55px"><?= view.logfile[i].save ?></TD> - <TD "width=55px"><?= view.logfile[i].view ?></TD> - <TD "width=55px"><?= view.logfile[i].size ?></TD> - <TD><?= view.logfile[i].lastmod ?></TD> + <TR class=grey> + <TD "width=55px"><?= view.logfile[1].inuse ?></TD> + <TD "width=55px"><?= view.logfile[1].save ?></TD> + <TD "width=55px"><?= view.logfile[1].view ?></TD> + <TD "width=55px" align="right"><?= view.logfile[1].size ?></TD> + <TD align="right" "width=90px"><?= view.logfile[1].lastmod ?></TD> + <TD><?= view.logfile[1].name ?></TD> + </TR> + +<? for i = 2, table.maxn(view.logfile) do ?> + <TR> + <TD> + <? if view.logfile[i].del then ?> + <?= html.link{value = view.url .. view.logfile[i].del, label=view.logfile[i].inuse } ?> + <? else ?> + <?= view.logfile[i].inuse ?> + <? end ?></TD> + <TD><?= html.link{value = view.url .. view.logfile[i].save, label="Save" } ?></TD> + <TD><?= html.link{value = view.url .. view.logfile[i].view, label="View" } ?></TD> + <TD align="right"><?= view.logfile[i].size ?></TD> + <TD align="right"><?= view.logfile[i].lastmod ?></TD> <TD><?= view.logfile[i].name ?></TD> </TR> <? end ?> </TABLE> </body> -</html> +</html> |