]> git.proxmox.com Git - pve-manager.git/blame - bin/pveupdate
don't save password and double lines in pvesh history
[pve-manager.git] / bin / pveupdate
CommitLineData
19407634 1#!/usr/bin/perl
aff192e6
DM
2
3use strict;
19407634
DM
4use warnings;
5
aff192e6
DM
6use IO::File;
7use File::Find;
8use File::stat;
9
fdc94486 10use PVE::INotify;
4027c59b
DM
11use PVE::Cluster;
12use PVE::APLInfo;
13use PVE::SafeSyslog;
14use PVE::RPCEnvironment;
15use PVE::API2::Subscription;
fdc94486 16use PVE::API2::APT;
4027c59b 17
c8969ecb 18initlog ('pveupdate', 'daemon');
aff192e6 19
4027c59b
DM
20die "please run as root\n" if $> != 0;
21
22$ENV{'PATH'} = '/sbin:/bin:/usr/sbin:/usr/bin';
23
24PVE::INotify::inotify_init();
25
26my $rpcenv = PVE::RPCEnvironment->init('cli');
27
28$rpcenv->init_request();
29$rpcenv->set_language($ENV{LANG});
c9355915 30$rpcenv->set_user('root@pam');
4027c59b
DM
31
32my $nodename = PVE::INotify::nodename();
33
34eval { PVE::API2::Subscription->update({ node => $nodename }); };
35if (my $err = $@) {
a88002cf 36 syslog ('err', "update subscription info failed: $err");
4027c59b
DM
37}
38
c9164975
DM
39my $dccfg = PVE::Cluster::cfs_read_file('datacenter.cfg');
40eval { PVE::APLInfo::update($dccfg->{http_proxy}); };
41if (my $err = $@) {
a88002cf
DM
42 syslog ('err', "update appliance info failed - see /var/log/pveam.log for details");
43}
44
45if (my $info = PVE::INotify::read_file('subscription')) {
46 # We assume that users with subscriptions want informations
47 # about new packages.
48 if ($info->{status} eq 'Active') {
2544e8d5 49 eval { PVE::API2::APT->update_database({ node => $nodename, notify => 1, quiet => 1 }); };
a88002cf
DM
50 if (my $err = $@) {
51 syslog ('err', "update apt database failed: $err");
52 }
53 }
c9164975 54}
aff192e6
DM
55
56sub cleanup_tasks {
57
58 my $taskdir = "/var/log/pve/tasks";
59 my $filename = "$taskdir/index.1";
60
61 my $fh = IO::File->new($filename, O_RDONLY);
62 return if !$fh;
63
64 my $endtime = 0;
65 while (defined(my $line = <$fh>)) {
66 if ($line =~ m/^(\S+)(\s([0-9A-Za-z]{8})(\s(\S.*))?)?$/) {
67 $endtime = hex($3);
68 last;
69 }
70 }
71 close($fh);
72
73 return if !$endtime;
74
75 # print "delete task older that $endtime\n" . localtime($endtime) . "\n";
76
77 my $count = 0;
78
79 my $wanted = sub {
80 my $filename = $_;
81
82 return if $filename !~ m/^UPID:/;
83
84 my $st;
85 if (($st = stat($filename)) && ($st->mtime < $endtime)) {
86 unlink($filename);
87 $count++;
88 }
89 };
90
b0a65294 91 foreach my $subdir (qw(0 1 2 3 4 5 6 7 8 9 A B C D E F)) {
aff192e6
DM
92 my $path = "$taskdir/$subdir";
93 find($wanted, $path);
94 }
95
96 if ($count) {
97 syslog('info', "cleanup removed $count task logs");
98 }
99}
100
101cleanup_tasks();
102
103exit (0);