prune_b2.pl 893 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. my $DRY_RUN = 1;
  5. if ( defined $ARGV[0] && $ARGV[0] eq "--run" ) {
  6. $DRY_RUN = 0;
  7. }
  8. sub find_bin($) {
  9. my $bin_name = shift;
  10. my $bin_path = `which $bin_name`;
  11. chomp $bin_path;
  12. if ( ! defined $bin_path || $bin_path eq "" ) {
  13. print("Couldn't find $bin_name\n");
  14. exit 1;
  15. }
  16. return $bin_path;
  17. }
  18. my $RBIN = find_bin("rclone");
  19. my $RPATH = "spw-b2:spw01Backups1/spwbk-site-backups/";
  20. my $DBIN = find_bin("date");
  21. my $DATE = `$DBIN +%Y%m%d`;
  22. chomp $DATE;
  23. foreach my $file ( split("\n", `$RBIN ls $RPATH | awk \'{print \$2}\'`) ) {
  24. if ( $file =~ m/bk_([0-9]{4}-[0-9]{2}-[0-9]{2})/ ) {
  25. my $file_date = $1;
  26. $file_date =~ tr/-//d;
  27. if ( $file_date < $DATE ) {
  28. my $cmd = "$RBIN delete $RPATH$file";
  29. print("$cmd\n");
  30. if ( $DRY_RUN eq 0 ) {
  31. system($cmd) == 0 or die
  32. "Failed to delete $file, exiting...\n";
  33. }
  34. }
  35. }
  36. }