]> git.proxmox.com Git - pmg-api.git/blob - bin/pmg-hourly
pmg-hourly: rotate razor log file
[pmg-api.git] / bin / pmg-hourly
1 #!/usr/bin/perl -T
2
3 $ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
4
5 delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
6
7 use strict;
8 use warnings;
9
10 use PVE::SafeSyslog;
11 use PVE::INotify;
12 use PVE::RESTEnvironment;
13
14 use PMG::Utils;
15 use PMG::Config;
16 use PMG::ClusterConfig;
17 use PMG::LDAPSet;
18 use PMG::DBTools;
19 use PMG::Statistic;
20
21 $SIG{'__WARN__'} = sub {
22 my $err = $@;
23 my $t = $_[0];
24 chomp $t;
25 print STDERR "$t\n";
26 syslog('warning', "%s", $t);
27 $@ = $err;
28 };
29
30 PVE::RESTEnvironment->setup_default_cli_env();
31
32 initlog('pmg-hourly', 'mail');
33
34 my $cfg = PMG::Config->new();
35
36 my $demo = $cfg->get('admin', 'demo');
37
38 my $cinfo = PMG::ClusterConfig->new();
39
40 if ($demo) {
41 # fixme: generate fake statistics
42
43 return;
44 }
45
46 if (my $statlifetime = $cfg->get ('admin', 'statlifetime')) {
47 my $count = 0;
48 eval {
49 my $dbh = PMG::DBTools::open_ruledb();
50 $count = PMG::Statistic::cleanup_stats($dbh, $statlifetime);
51 };
52 if (my $err = $@) {
53 syslog('err', $err);
54 } else {
55 syslog('info', "cleanup removed $count entries from statistic database") if $count;
56 }
57 }
58
59 PMG::Utils::service_cmd('pmgpolicy', 'restart');
60
61 my $ldap_cfg = PVE::INotify::read_file("pmg-ldap.conf");
62 PMG::LDAPSet::ldap_resync($ldap_cfg);
63
64 # rotate razor log file
65 rename('/root/.razor/razor-agent.log', '/root/.razor/razor-agent.log.0');
66
67 # sync bayes journal to database
68 system('sa-learn --sync >/dev/null 2>&1');
69
70 # make sure clamav-daemon is running
71 PMG::Utils::service_cmd('clamav-daemon', 'start');
72
73 exit(0);
74