Skip to content
Snippets Groups Projects
Commit 0a1c3ad2 authored by Manuela Kuhn's avatar Manuela Kuhn
Browse files

Added lsyncd-script from Jan

parents
No related branches found
No related tags found
No related merge requests found
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- gpfs-direct
--
-- A (Layer 2) configuration.
--
-- Author: Jan Meyer <jan.meyer@desy.de>
--
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
-- configuration parameters
--
settings {
statusFile = "/var/log/lsyncd.stat",
statusInterval = 1,
}
local formats = { jpg = true, tif = true, cbf = true, log = true }
local folders = { "/local", "/current/raw", "/commissioning/raw" }
gpfs = {
onCreate = function(event)
-- check if in relevant subfolder
local location = false
for i, path in ipairs(folders) do
if string.sub(event.path, 1, string.len(path)) == path then
location = true
break
end
end
if location == false then return end
if event.isdir then
for i, path in ipairs(folders) do
if path == event.pathname then return end
end
spawn(
event,
'/bin/mkdir',
event.targetPath
)
else
-- check filetype
local extension = string.match(event.name, ".*%.([^.]+)$")
if formats[extension] ~= true then return end
spawn(
event,
'/bin/mv',
event.sourcePath,
event.targetPathdir
)
end
end,
onModify = function(event)
if event.isdir then
error("Do not know how to handle 'Modify' on dirs")
else
-- check if in relevant subfolder
local location = false
for i, path in ipairs(folders) do
if string.sub(event.path, 1, string.len(path)) == path then
location = true
break
end
end
if location == false then return end
-- check filetype
local extension = string.match(event.name, ".*%.([^.]+)$")
if formats[extension] ~= true then return end
spawn(
event,
'/bin/mv',
event.sourcePath,
event.targetPathdir
)
end
end,
--
-- Called when collecting a finished child process
--
collect = function(agent, exitcode)
local config = agent.config
if not agent.isList and agent.etype == "Blanket" then
if exitcode == 0 then
log("Normal", "Startup of '",agent.source,"' finished.")
elseif config.exitcodes and
config.exitcodes[exitcode] == "again"
then
log("Normal", "Retrying startup of '",agent.source,"'.")
return "again"
else
log("Error", "Failure on startup of '",agent.source,"'.")
end
return
end
local rc = config.exitcodes and config.exitcodes[exitcode]
if rc == "die" then
return rc
end
if agent.isList then
if rc == "again" then
log("Normal", "Retrying a list on exitcode = ",exitcode)
else
log("Normal", "Finished a list = ",exitcode)
end
else
if rc == "again" then
log("Normal", "Retrying ", agent.etype, " on ", agent.sourcePath, " = ", exitcode)
else
log("Normal", "Finished ", agent.etype, " on ", agent.sourcePath, " = ", exitcode)
end
end
return rc
end,
}
sync {
gpfs,
delay=0,
init=false,
source="/rd",
target="/gpfs",
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment