Class: LSync::Methods::RSync
Overview
0 Success
1 Syntax or usage error
2 Protocol incompatibility
3 Errors selecting input/output files, dirs
4 Requested action not supported: an attempt was made to manipulate 64-bit files on a platform
that cannot support them; or an option was specified that is supported by the client and not by the server.
5 Error starting client-server protocol
6 Daemon unable to append to log-file
10 Error in socket I/O
11 Error in file I/O
12 Error in rsync protocol data stream
13 Errors with program diagnostics
14 Error in IPC code
20 Received SIGUSR1 or SIGINT
21 Some error returned by waitpid()
22 Error allocating core memory buffers
23 Partial transfer due to error
24 Partial transfer due to vanished source files
25 The --max-delete limit stopped deletions
30 Timeout in data send/receive
35 Timeout waiting for daemon connection
Instance Method Summary
collapse
#abort!, #fire, #on, #try
Constructor Details
#initialize(direction, options = {}) ⇒ RSync
Returns a new instance of RSync.
51
52
53
54
55
56
57
58
59
|
# File 'lib/lsync/methods/rsync.rb', line 51
def initialize(direction, options = {})
super(options)
@direction = direction
@command = options[:command] || "rsync"
@options = options
@connection = nil
end
|
Instance Method Details
#run(controller) ⇒ Object
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/lsync/methods/rsync.rb', line 101
def run(controller)
directory = controller.directory
arguments = (@options[:arguments] || ["--archive"]) + (directory.options[:arguments] || [])
local_server, remote_server, source, destination = configuration(controller, controller.directory, controller.directory)
arguments += connect_arguments(local_server, remote_server)
controller.target.exec!(["mkdir", "-p", controller.target.full_path(directory.path)])
run_handler(controller, local_server, source, destination, arguments)
end
|
#run_handler(controller, local_server, source, destination, arguments) ⇒ Object
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/lsync/methods/rsync.rb', line 115
def run_handler(controller, local_server, source, destination, arguments)
command = [@command] + arguments + [source, destination]
local_server.exec(command) do |task|
LSync::log_task(task, controller.logger)
result = task.wait
unless result.exitstatus == 0 || result.exitstatus == 24
raise BackupMethodError.new("Backup from #{source} to #{destination} failed.", :method => self)
end
end
end
|
#should_run?(controller) ⇒ Boolean
130
131
132
133
134
135
136
137
138
|
# File 'lib/lsync/methods/rsync.rb', line 130
def should_run?(controller)
if @direction == :push
return controller.current == controller.master
elsif @direction == :pull
return controller.target.local?
else
return false
end
end
|