mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-21 04:42:46 +00:00
rsync password support
This commit is contained in:
parent
67d6757e6a
commit
c78fdddad7
@ -60,6 +60,7 @@ class MirrorConfig(object):
|
|||||||
self.upstream,
|
self.upstream,
|
||||||
self.local_dir,
|
self.local_dir,
|
||||||
self.use_ipv6,
|
self.use_ipv6,
|
||||||
|
self.password,
|
||||||
self.exclude_file,
|
self.exclude_file,
|
||||||
self.log_file,
|
self.log_file,
|
||||||
self.interval,
|
self.interval,
|
||||||
|
@ -41,17 +41,19 @@ class MirrorProvider(object):
|
|||||||
|
|
||||||
class RsyncProvider(MirrorProvider):
|
class RsyncProvider(MirrorProvider):
|
||||||
|
|
||||||
_default_options = "-av --delete-after"
|
_default_options = \
|
||||||
|
"-aHvh --stats --delete-after --timeout=120 --contimeout=120"
|
||||||
|
|
||||||
def __init__(self, name, upstream_url, local_dir, useIPv6=True,
|
def __init__(self, name, upstream_url, local_dir, useIPv6=True,
|
||||||
exclude_file=None, log_file="/dev/null", interval=120,
|
password=None, exclude_file=None, log_file="/dev/null",
|
||||||
hooks=[]):
|
interval=120, hooks=[]):
|
||||||
super(RsyncProvider, self).__init__(name, local_dir, log_file,
|
super(RsyncProvider, self).__init__(name, local_dir, log_file,
|
||||||
interval, hooks)
|
interval, hooks)
|
||||||
|
|
||||||
self.upstream_url = upstream_url
|
self.upstream_url = upstream_url
|
||||||
self.useIPv6 = useIPv6
|
self.useIPv6 = useIPv6
|
||||||
self.exclude_file = exclude_file
|
self.exclude_file = exclude_file
|
||||||
|
self.password = password
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def options(self):
|
def options(self):
|
||||||
@ -60,8 +62,6 @@ class RsyncProvider(MirrorProvider):
|
|||||||
|
|
||||||
if self.useIPv6:
|
if self.useIPv6:
|
||||||
_options.append("-6")
|
_options.append("-6")
|
||||||
else:
|
|
||||||
_options.append("-4")
|
|
||||||
|
|
||||||
if self.exclude_file:
|
if self.exclude_file:
|
||||||
_options.append("--exclude-from")
|
_options.append("--exclude-from")
|
||||||
@ -77,7 +77,11 @@ class RsyncProvider(MirrorProvider):
|
|||||||
now = datetime.now().strftime("%Y-%m-%d_%H")
|
now = datetime.now().strftime("%Y-%m-%d_%H")
|
||||||
log_file = self.log_file.format(date=now)
|
log_file = self.log_file.format(date=now)
|
||||||
|
|
||||||
self.p = sh.rsync(*_args, _out=log_file, _err=log_file,
|
new_env = os.environ.copy()
|
||||||
|
if self.password is not None:
|
||||||
|
new_env["RSYNC_PASSWORD"] = self.password
|
||||||
|
|
||||||
|
self.p = sh.rsync(*_args, _env=new_env, _out=log_file, _err=log_file,
|
||||||
_out_bufsize=1, _bg=True)
|
_out_bufsize=1, _bg=True)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user