Linux ip-148-66-134-25.ip.secureserver.net 3.10.0-1160.119.1.el7.tuxcare.els11.x86_64 #1 SMP Sun Nov 3 09:06:59 UTC 2024 x86_64
Apache
: 148.66.134.25 | : 18.191.200.114
66 Domain
8.0.30
amvm
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
rsync-3.1.2 /
support /
[ HOME SHELL ]
Name
Size
Permission
Action
Makefile
80
B
-rw-r--r--
atomic-rsync
3.9
KB
-rw-r--r--
cvs2includes
1.18
KB
-rw-r--r--
deny-rsync
997
B
-rw-r--r--
file-attr-restore
4.82
KB
-rw-r--r--
files-to-excludes
534
B
-rw-r--r--
git-set-file-times
910
B
-rw-r--r--
instant-rsyncd
2.72
KB
-rw-r--r--
logfilter
1.07
KB
-rw-r--r--
lsh
2.21
KB
-rw-r--r--
lsh.sh
956
B
-rw-r--r--
mapfrom
629
B
-rw-r--r--
mapto
621
B
-rw-r--r--
mnt-excl
1.8
KB
-rw-r--r--
munge-symlinks
1.43
KB
-rw-r--r--
rrsync
7.07
KB
-rw-r--r--
rsync-no-vanished
267
B
-rw-r--r--
rsync-slash-strip
643
B
-rw-r--r--
rsyncstats
8.56
KB
-rw-r--r--
savetransfer.c
4.45
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : atomic-rsync
#!/usr/bin/perl # # This script lets you update a hierarchy of files in an atomic way by # first creating a new hierarchy using rsync's --link-dest option, and # then swapping the hierarchy into place. **See the usage message for # more details and some important caveats!** use strict; use warnings; use Cwd 'abs_path'; my $RSYNC_PROG = '/usr/bin/rsync'; my $RM_PROG = '/bin/rm'; my $dest_dir = $ARGV[-1]; &usage if !defined $dest_dir || $dest_dir =~ /(^-|^$)/ || grep(/^--help/, @ARGV); $dest_dir =~ s{(?<=.)/+$} {}; if (!-d $dest_dir) { die "$dest_dir is not a directory.\nUse --help for help.\n"; } if (@_ = grep(/^--[a-z]+-dest\b/, @ARGV)) { $_ = join(' or ', @_); die "You cannot use the $_ option with atomic-rsync.\nUse --help for help.\n"; } my $symlink_content = readlink $dest_dir; # undef when a real dir my $dest_arg = $dest_dir; # This gives us the real destination dir, with all symlinks dereferenced. $dest_dir = abs_path($dest_dir); if ($dest_dir eq '/') { die qq|You must not use "/" as the destination directory.\nUse --help for help.\n|; } my($old_dir, $new_dir); if (defined $symlink_content && $dest_dir =~ /-([12])$/) { my $num = 3 - $1; $old_dir = undef; ($new_dir = $dest_dir) =~ s/-[12]$/-$num/; $symlink_content =~ s/-[12]$/-$num/; } else { $old_dir = "$dest_dir~old~"; $new_dir = "$dest_dir~new~"; } $ARGV[-1] = "$new_dir/"; system($RM_PROG, '-rf', $old_dir) if defined $old_dir && -d $old_dir; system($RM_PROG, '-rf', $new_dir) if -d $new_dir; if (system($RSYNC_PROG, "--link-dest=$dest_dir", @ARGV)) { if ($? == -1) { print "failed to execute $RSYNC_PROG: $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'; } else { printf "child exited with value %d\n", $? >> 8; } exit $?; } if (!defined $old_dir) { atomic_symlink($symlink_content, $dest_arg); exit; } rename($dest_dir, $old_dir) or die "Unable to rename $dest_dir to $old_dir: $!"; rename($new_dir, $dest_dir) or die "Unable to rename $new_dir to $dest_dir: $!"; exit; sub atomic_symlink { my($target, $link) = @_; my $newlink = "$link~new~"; unlink($newlink); # Just in case symlink($target, $newlink) or die "Unable to symlink $newlink -> $target: $!\n"; rename($newlink, $link) or die "Unable to rename $newlink to $link: $!\n"; } sub usage { die <<EOT; Usage: atomic-rsync [RSYNC-OPTIONS] HOST:/SOURCE/DIR/ /DEST/DIR/ atomic-rsync [RSYNC-OPTIONS] HOST::MOD/DIR/ /DEST/DIR/ This script lets you update a hierarchy of files in an atomic way by first creating a new hierarchy (using hard-links to leverage the existing files), and then swapping the new hierarchy into place. You must be pulling files to a local directory, and that directory must already exist. For example: mkdir /local/files-1 ln -s files-1 /local/files atomic-rsync -av host:/remote/files/ /local/files/ If /local/files is a symlink to a directory that ends in -1 or -2, the copy will go to the alternate suffix and the symlink will be changed to point to the new dir. This is a fully atomic update. If the destination is not a symlink (or not a symlink to a *-1 or a *-2 directory), this will instead create a directory with "~new~" suffixed, move the current directory to a name with "~old~" suffixed, and then move the ~new~ directory to the original destination name (this double rename is not fully atomic, but is rapid). In both cases, the prior destintaion directory will be preserved until the next update, at which point it will be deleted. In all likelihood, you do NOT want to specify this command: atomic-rsync -av host:/remote/files /local/ ... UNLESS you want the entire /local dir to be swapped out! See the "rsync" command for its list of options. You may not use the --link-dest, --compare-dest, or --copy-dest options (since this script uses --link-dest to make the transfer efficient). EOT }
Close