code: def rsync(self, *, ui_mode: UIMode = UIMode.dots):
      with monit.section(f"RSync {self.conf.name}"):
          logger.log()
          exclude_path = Configs.get().exclude_file
          exclude_path = exclude_path.absolute()
          # z = compress
          # r = recursive
          # a = equivalent to (-rlptgoD) archive (recursive/preserve everything)
          # v = verbose
          # u = update (skip whats newer on receiver)
          # K = keep symlinks
          # L = transform links to dir
          # t = preserve modification times
          # l = copy links
          # p = preserve permissions
          # g = preserve group
          # o = preserve owner
          # D = preserve device files
          rsync_cmd = ["rsync", "-zravuKLt", "--executability"]
          if self.conf.private_key_file is not None:
              rsync_cmd += [
                  "-e",
                  f'"ssh -o StrictHostKeyChecking=no -i {self.conf.private_key_file}"',
              ]
          else:
              rsync_cmd += ["-e", f'"ssh -o StrictHostKeyChecking=no"']
          if exclude_path.exists():
              rsync_cmd += [f"--exclude-from='{str(exclude_path)}'"]
          rsync_cmd += ["./"]  # source
          rsync_cmd += [
              f"{self.conf.username}@{self.conf.hostname}:~/{self.project_name}/"
          ]  # destination
  
          log_dir = self._get_log_folder(f"rsync_{self.conf.name}")
          exit_code = self.local_exec.stream(
              " ".join(rsync_cmd), log_dir=log_dir, ui_mode=ui_mode
          )
  
          if exit_code != 0:
              raise RemoteError("Failed to run rsync")
  
imports: import os
  import stat
  import sys
  from pathlib import Path
  from typing import Dict, Optional
  import paramiko
  from paramiko import SSHClient
  from scp import SCPClient
  from labml import monit, logger
  from labml_remote import util
  from labml_remote.configs import Configs
  from labml_remote.errors import RemoteError
  from labml_remote.execute import UIMode
  from labml_remote.execute.local import LocalExecutor
  from labml_remote.execute.remote import RemoteExecutor, EvalResult
  from labml_remote.util import get_env_vars
label_desc: Use image node_id 12 for calling the Server obj's underlying member method code with example usage: obj.rsync() without return types