/[sysadmin-cookbook]/recepies/zfs/zfs-expire-snapshot.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /recepies/zfs/zfs-expire-snapshot.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 108 - (show annotations)
Sat Jun 6 16:56:30 2009 UTC (14 years, 10 months ago) by dpavlin
File MIME type: text/plain
File size: 794 byte(s)
expire snapshots

1 #!/usr/bin/perl
2
3 use warnings;
4 use strict;
5
6 use DateTime;
7
8 my $now = DateTime->now();
9
10 my $last_backup;
11
12 open(my $fs, '-|', 'zfs list -H');
13 while(<$fs>) {
14 chomp;
15 my ( $name, $used, $avail, $refer, $mountpoint ) = split(/\t/,$_,6);
16
17 next unless $name =~ m{(.+)@(\d\d\d\d)-(\d\d)-(\d\d)};
18
19 my $host = $1;
20
21 my $date = DateTime->new( year => $2, month => $3, day => $4 );
22
23 my $age = $now->delta_days( $date )->delta_days;
24
25 my $op = ' ';
26 my $last = 0;
27
28 if ( $age > 14 ) {
29
30 $last_backup->{$host} ||= $date;
31 $last = $last_backup->{$host}->delta_days( $date )->delta_days;
32
33 if ( $last && $last < 5 ) {
34 $op = '-';
35 } else {
36 $op = '+';
37 $last_backup->{$host} = $date;
38 }
39 }
40
41 warn "$op $name\t$used\t$refer\t$age\t$last\n";
42
43 system "zfs destroy $name" if $op eq '-' && @ARGV;
44 }

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26