Je vous remercie. C'est marrant. Je souhaite utiliser rsync pour le développement d'un certain service. C'est aussi java. Cependant, je n'ai rien trouvé de tel que rsync implémenté en java.
Lors de mes recherches, j'ai trouvé ce qui suit
https://github.com/fracpete/rsync4j
Ce rsync4j est un frontal rsync qui fonctionne sous Windows et Linux. Sous Windows, rsync se fait en déployant le binaire requis pour rsync une fois quelque part et en l'exécutant.
Fonctionne normalement, ouais
Z:\users\desktop\a>ls
rsync4j-all-3.1.2-12-spring-boot.jar
Z:\users\desktop\a>java -jar rsync4j-all-3.1.2-12-spring-boot.jar
usage: com.github.fracpete.rsync4j.RSync
[-h] [--output-commandline] [--maxtime MAXTIME] [-v]
[--info INFO] [--debug DEBUG] [--msgs2stderr] [-q] [--no-motd] [-c]
[-a] [-r] [-R] [--no-implied-dirs] [-b] [--backup-dir BACKUPDIR]
[--suffix SUFFIX] [-u] [--inplace] [--append] [--append-verify] [-d]
[-l] [-L] [--copy-unsafe-links] [--safe-links] [--munge-links] [-k]
[-K] [-H] [-p] [-E] [--chmod CHMOD] [-X] [-o] [-g] [--devices]
[--specials] [-t] [-O] [-J] [--super] [--fake-super] [-S]
[--preallocate] [-n] [-W] [-x] [-B BLOCKSIZE] [-e RSH]
[--rsync-path RSYNCPATH] [--existing] [--ignore-existing]
[--remove-source-files] [--delete] [--delete-before]
[--delete-during] [--delete-delay] [--delete-after]
[--delete-excluded] [--ignore-missing-args] [--delete-missing-args]
[--ignore-errors] [--force] [--max-delete MAXDELETE]
[--max-size MAXSIZE] [--min-size MINSIZE] [--partial]
[--partial-dir PARTIALDIR] [--delay-updates] [-m] [--numeric-ids]
[--usermap USERMAP] [--groupmap GROUPMAP] [--chown CHOWN]
[--timeout TIMEOUT] [--contimeout CONTIMEOUT] [-I] [-M REMOTEOPTION]
[--size-only] [--modify-window MODIFYWINDOW] [-T TEMPDIR] [-y]
[--compare-dest COMPAREDEST] [--copy-dest COPYDEST]
[--link-dest LINKDEST] [-z] [--compress-level COMPRESSLEVEL]
[--skip-compress SKIPCOMPRESS] [-C] [-f FILTER] [--exclude EXCLUDE]
[--exclude-from EXCLUDEFROM] [--include INCLUDE]
[--include-from INCLUDEFROM] [--files-from FILESFROM] [-0] [-s]
[--address ADDRESS] [--port PORT] [--sockopts SOCKOPTS]
[--blocking-io] [--stats] [-8] [--human-readable] [--progress] [-i]
[--out-format OUTFORMAT] [--log-file LOGFILE]
[--log-file-format LOGFILEFORMAT] [--password-file PASSWORDFILE]
[--list-only] [--bwlimit BWLIMIT] [--outbuf OUTBUF]
[--write-batch WRITEBATCH] [--only-write-batch ONLYWRITEBATCH]
[--read-batch READBATCH] [--protocol PROTOCOL] [--iconv ICONV]
[--checkum-seed CHECKSUMSEED] [-4] [-6] [--version]
[--additional ADDITIONAL] src dest
com.github.fracpete.rsync4j.RSync: error: too few arguments
Z:\users\desktop\a>java -jar rsync4j-all-3.1.2-12-spring-boot.jar Z:\users\desktop\a Z:\users\desktop\a\a
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries extractBinaries
information: Setting up rsync4j environment in 'C:\Users\hani\rsync4j'...
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries extractBinaries
information: Creating directory: C:\Users\hani\rsync4j\bin
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries extractBinaries
information: Creating directory: C:\Users\hani\rsync4j\home\hani\.ssh
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries extractBinaries
information: Copy your public key pairs into: C:\Users\hani\rsync4j\home\hani\.ssh
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygcom_err-2.dll' to 'C:\Users\hani\rsync4j\bin\cygcom_err-2.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygcrypto-1.0.0.dll' to 'C:\Users\hani\rsync4j\bin\cygcrypto-1.0.0.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cyggcc_s-seh-1.dll' to 'C:\Users\hani\rsync4j\bin\cyggcc_s-seh-1.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cyggssapi_krb5-2.dll' to 'C:\Users\hani\rsync4j\bin\cyggssapi_krb5-2.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygiconv-2.dll' to 'C:\Users\hani\rsync4j\bin\cygiconv-2.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygintl-8.dll' to 'C:\Users\hani\rsync4j\bin\cygintl-8.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygk5crypto-3.dll' to 'C:\Users\hani\rsync4j\bin\cygk5crypto-3.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygkrb5-3.dll' to 'C:\Users\hani\rsync4j\bin\cygkrb5-3.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygkrb5support-0.dll' to 'C:\Users\hani\rsync4j\bin\cygkrb5support-0.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygwin1.dll' to 'C:\Users\hani\rsync4j\bin\cygwin1.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/cygz.dll' to 'C:\Users\hani\rsync4j\bin\cygz.dll'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/ssh.exe' to 'C:\Users\hani\rsync4j\bin\ssh.exe'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/rsync.exe' to 'C:\Users\hani\rsync4j\bin\rsync.exe'
9 16, 2018 9:59:32 pm com.github.fracpete.rsync4j.core.Binaries copyResourceTo
information: Copying resource 'com/github/fracpete/rsync4j/windows-x86_64/ssh-keygen.exe' to 'C:\Users\hani\rsync4j\bin\ssh-keygen.exe'
skipping directory a
Z:\users\desktop\a>java -jar rsync4j-all-3.1.2-12-spring-boot.jar -av Z:\users\desktop\a Z:\users\desktop\a\a
sending incremental file list
a/
a/rsync4j-all-3.1.2-12-spring-boot.jar
a/a/
sent 9,556,407 bytes received 47 bytes 19,112,908.00 bytes/sec
total size is 9,553,886 speedup is 1.00
Z:\users\desktop\a>
Veuillez écrire sur maven comme ça.
<dependency>
<groupId>com.github.fracpete</groupId>
<artifactId>rsync4j-all</artifactId>
<version>3.1.2-12</version>
</dependency>
Exemple: aucun n'est asynchrone.
Options de réglage
// rsync -av /backupmoto/ /backupsaki/ --delete --exclude='nozokitai/'
RSync rsync = new RSync()
.source("/backupmoto/")
.destination("/backupsaki/")
.archive(true).verbose(true).delete(true).exclude("nozokitai/");
CollectingProcessOutput output = null;
try {
output = rsync.execute();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(output.getStdOut());
System.out.println("Exit code: " + output.getExitCode());
if (output.getExitCode() > 0)
System.err.println(output.getStdErr());
////
Lancer des options dans un tableau
//rsync -av /backupmoto/ /backupsaki/ --delete --exclude='nozokitai/'
RSync rsync;
try {
rsync = new RSync();
rsync.setOptions(new String[]{"-av", "/backupmoto/", "/backupsaki/", "--delete", "--exclude='nozokitai/"});
CollectingProcessOutput output = rsync.execute();
System.out.println(output.getStdOut());
System.out.println("Exit code: " + output.getExitCode());
if (output.getExitCode() > 0)
System.err.println(output.getStdErr());
} catch (Exception e) {
e.printStackTrace();
}
Cela aurait été bien s'il avait été implémenté en java, mais je me demande si cela pourrait être sous la forme d'exécuter un binaire. Si je découvre quelque chose en fonctionnement réel, je voudrais le rendre.
Ref https://fracpete.github.io/rsync4j/windows/ http://www.atmarkit.co.jp/ait/articles/1702/02/news031.html
Recommended Posts