Thanks Mikail,
Posting finished promise just in case anyone else is trying to do similar.
Comments on improvement welcome.
Cheers
body common control
{
bundlesequence => { "sys_cleanup" };
inputs => { "cfengine_stdlib.cf" };
}
bundle agent sys_cleanup
{
vars:
redhat::
#Keep 7 copies of /var/log/wtmp rotate everyday
"rtf[wtmp]" string => "/var/log"; "rr[wtmp]" string => "7";
"rd[wtmp]" string => "cfengine_3";
aix::
#Keep 7 copies of /var/adm/wtmp rotate everyday
"rtf[wtmp]" string => "/var/adm"; "rr[wtmp]" string => "7";
"rd[wtmp]" string => "cfengine_3";
any::
###################
#Rotated Targets
###################
#Keep 31 copies of /var/tsm/dsmsched.log rotate everyday
"rtf[dsmsched.log]" string => "/var/tsm"; "rr[dsmsched.log]" string =>
"31"; "rd[dsmsched.log]" string => "cfengine_3";
#Keep 4 copies of /var/adm/sulog rotate Sunday
"rtf[sulog]" string => "/var/adm"; "rr[sulog]" string => "4";
"rd[sulog]" string => "Sunday";
#Keep 4 copies of /var/adm/sudo.log rotate Sunday
"rtf[sudo.log]" string => "/var/adm"; "rr[sudo.log]" string => "4";
"rd[sudo.log]" string => "Sunday";
#Keep 14 copies of /var/adm/cron/log rotate everyday
"rtf[log]" string => "/var/adm/cron"; "rr[log]" string => "14";
"rd[log]" string => "cfengine_3";
#Keep 14 copies of /var/log/cron rotate everyday
"rtf[cron]" string => "/var/log"; "rr[cron]" string => "14";
"rd[cron]" string => "cfengine_3";
#Keep 4 copies of /etc/security/failedlogin rotate Sunday
"rtf[failedlogin]" string => "/etc/security"; "rr[failedlogin]" string =>
"4"; "rd[failedlogin]" string => "Sunday";
##################
#Cleaned Targets
##################
#Keep 14 days of /app_logs clean everyday
"ctd[/app_logs/]" string => "inf"; "cr[/app_logs/]" string =>
"14"; "cd[/app_logs/]" string => "cfengine_3";
"creg[/app_logs/]" string => ".*";
#Keep 7 days of any files under /app_logs/.*/tmp clean everyday
"ctd[/app_logs/.*/tmp/]" string => "inf"; "cr[/app_logs/.*/tmp/]" string
=> "7"; "cd[/app_logs/.*/tmp/]" string => "cfengine_3";
"creg[/app_logs/.*/tmp/]" string => ".*";
#Keep 31 days of any files under /var/log/*.nmon clean everyday
"ctd[/var/log/stats/]" string => "0"; "cr[/var/log/stats/]" string =>
"31"; "cd[/var/log/stats/]" string => "cfengine_3";
"creg[/var/log/stats/]" string => ".*.nmon";
#Generate Indicies of file / dir names to rotate / clean
"rfn" slist => getindices("rtf");
"cdn" slist => getindices("ctd");
files:
"$(rtf[$(rfn)])/$(rfn)"
comment => "Rotate files in rtf (rotated_target_files), rr
(rotated_retention), rd (day to perform rotate), location of file on string
rtf",
rename => rotate("$(rr[$(rfn)])"),
ifvarclass => canonify("$(rd[$(rfn)])"),
action => log;
"$(cdn)"
comment => "Delete files in ctd (cleaned_target_directory), recursively if
set on string ctd (0,1,2..inf), cd (day to perform clean), creg (regex to match
files too)",
delete => tidy_keep_dirs,
file_select => plain_filename_days_old("$(cr[$(cdn)])","$(creg[$(cdn)])"),
depth_search => recurse("$(ctd[$(cdn)])"),
ifvarclass => canonify("$(cd[$(cdn)])"),
action => log;
commands:
"/bin/gzip $(rtf[$(rfn)])/$(rfn).* >/dev/null 2>&1"
comment => "Gzip rotated log files",
contain => in_shell;
}
body delete tidy_keep_dirs
{
dirlinks => "keep";
rmdirs => "false";
}
body file_select plain_filename_days_old(days,name)
{
mtime => irange(0,ago(0,0,"$(days)",0,0,0));
leaf_name => { "$(name)" };
file_types => { "plain" };
file_result => "mtime.file_types.leaf_name";
}
body action log
{
log_level => "inform";
}
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Mikhail Gusarov
Sent: Wednesday, 18 May 2011 4:08 PM
To: [email protected]
Subject: Re: regex problem - version 3.1.4
On 18.05.2011 01:18, Jones, Stephen (MAS) wrote:
> commands:
>
> "/bin/gzip /var/adm/$(rotate_daily_var_adm).*"
contain => shellcommand;
> }
body contain shellcommand {
useshell => "yes";
}
--
Mikhail Gusarov
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine