File System - rsync (bash)

Octopus.Script exported 2020-06-15 by ryanrousseau belongs to ‘File System’ category.

Run rsync on a target or worker.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Executable Path

Rsync.Path =

Optional path to rsync if it is not in the environment’s path variable.

Options

Rsync.Options =

Options to provide to rsync.

Source

Rsync.Source =

The location of the source files to copy.

Destination

Rsync.Destination =

The destination to copy the source files to.

Rsync.PrintCommand =

Prints the command in the logs using set -x. This will cause a warning when the step runs.

Script body

Steps based on this template will execute the following Bash script.

rsyncPath=$(get_octopusvariable "Rsync.Path")
rsyncOptions=$(get_octopusvariable "Rsync.Options")
rsyncSource=$(get_octopusvariable "Rsync.Source")
rsyncDestination=$(get_octopusvariable "Rsync.Destination")
printCommand=$(get_octopusvariable "Rsync.PrintCommand")

if [ ! -z "$rsyncPath" ] ; then
   	PATH=$rsyncPath:$PATH
fi

if [ "$printCommand" = "True" ] ; then
    set -x
fi

rsync ${rsyncOptions:+ $rsyncOptions} ${rsyncSource:+ $rsyncSource} ${rsyncDestination:+ $rsyncDestination}

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "d8dfa484-59ed-491f-a22a-3098d4c2a6be",
  "Name": "File System - rsync (bash)",
  "Description": "Run [rsync](http://manpages.org/rsync) on a target or worker.",
  "Version": 1,
  "ExportedAt": "2020-06-15T21:11:29.969Z",
  "ActionType": "Octopus.Script",
  "Author": "ryanrousseau",
  "Packages": [],
  "Parameters": [
    {
      "Id": "da47b530-69dd-482c-9b97-f9c0b1dcca5c",
      "Name": "Rsync.Path",
      "Label": "Executable Path",
      "HelpText": "Optional path to `rsync` if it is not in the environment's path variable.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "7d315721-f2b2-4f0b-8eb1-3b946f711a59",
      "Name": "Rsync.Options",
      "Label": "Options",
      "HelpText": "[Options](http://manpages.org/rsync#options) to provide to `rsync`.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "a908f5a3-8284-42b9-992d-528993c5b55f",
      "Name": "Rsync.Source",
      "Label": "Source",
      "HelpText": "The location of the source files to copy.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "366ad01c-1ef9-408e-bbed-58d0a7a3e4db",
      "Name": "Rsync.Destination",
      "Label": "Destination",
      "HelpText": "The destination to copy the source files to.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "d969ceca-d823-4967-afbe-80672cd55051",
      "Name": "Rsync.PrintCommand",
      "Label": "Print Command?",
      "HelpText": "Prints the command in the logs using `set -x`. This will cause a warning when the step runs.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "Bash",
    "Octopus.Action.Script.ScriptBody": "rsyncPath=$(get_octopusvariable \"Rsync.Path\")\nrsyncOptions=$(get_octopusvariable \"Rsync.Options\")\nrsyncSource=$(get_octopusvariable \"Rsync.Source\")\nrsyncDestination=$(get_octopusvariable \"Rsync.Destination\")\nprintCommand=$(get_octopusvariable \"Rsync.PrintCommand\")\n\nif [ ! -z \"$rsyncPath\" ] ; then\n   \tPATH=$rsyncPath:$PATH\nfi\n\nif [ \"$printCommand\" = \"True\" ] ; then\n    set -x\nfi\n\nrsync ${rsyncOptions:+ $rsyncOptions} ${rsyncSource:+ $rsyncSource} ${rsyncDestination:+ $rsyncDestination}"
  },
  "Category": "File System",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/file-system-rsync.json",
  "Website": "/step-templates/d8dfa484-59ed-491f-a22a-3098d4c2a6be",
  "Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKhQTFRF/////78A/6oAVVVV/++//+q/gICA1dXV/79A/9R///ff/8MQ/9dg/8cg//vv/68A/+ef//PP//rv/7Ug/68Q/+Sv/8sw/9tw/9NQ/89w/+uv/+OP/8pg/89A/8VQ/9+f/9+A/9qP/+/P/99//7cA/7IA/7wA/6sA/+/A39/f/64A2tjX//Tfn5+f/7MA/7sA/74A/60A/9Zw/7gA/74Q/7oA/7UA/7EAi6g4fwAAAuRJREFUeNrs21tT2mAUheEvaaCQQCSczyi29WzP7f//Z6UdZBIIM44us9hf13vbC+eRbLo3qnNKKaWUUkoppZRSSimllFJKKaWUwlVrLhsvbrLqnoai2+yFr2x+fwKOwasZm/oXdEczxDQnOyYhqgn3uQpxDZhz3gdCesQ3r3mIjDfwXagj7NEgKywkXLMgSzCE9mz1wBDaOzDYETYEEUSQ/wPSaz6rQa174pDnt1x5Atm8emtPIGG48gUClJAh/XtPILi36+L3Zz6oVdBF4w32/sIbYmWH6qAPX5fzjio/14Q/W7nnqtIPDnYfFfThkGpPovXu68IhNdKSVyXkoQ7qgQypvwNVFwQDuXkP6oYM8WbYBWFDYMPNHnZBTv3tV8MuiCC+Q6K36+ypkn/LsJC4lQSkhhkQch4Qa+MgrYBahIKcB35AYrIjyEAQ9gsCm5E2GTIDQabsJysFQcZkxxj0H2LKfkGmIMjM3KgfgbBHfQSCROwnKwZByNtJsACt8WlChnRAkA7ZkaAOqyEZ0gJB7O2LRyAjsmOIutlNjnoJhD3qL9gXyyFjk6N+CKGPegSC2DsNj0DY++IlCEI/DWMQhL0vjh0GYvE0LIWwT8PEgSDsfXEEgmRmR30PYvI0LIGkRvfFAwj9NExBkIXRfXEfYvQ0PISwT8O2A0HYoz4DQb4ZPQ0PID8sj3oO8tXuvliEPJoe9Rzkk9XTcA9yZnhfLEA+mD0Ni5Ar9gvSAUE+2j0Ni5DPdk/DAuTW9L6Yg7BHfehAkC/WR30LoY96CoL8tL0v7iD0fTECQX4Z3xd3EPa+OANBflvfF58g363vi1sIfV+cgiCPPoz6Xwh71EcgyK0Xo76BsPfFBcbhrjzYF/9l/zTcxj4NWyBH7Mmo038zFvWCsCHt1HnxaCWZg8X8ifQwxjlcSvsJaHLpsGW5v2S8vo4qyymF7+5O3wOllFJKKaWUUkoppZRSSimllPKxPwIMAPj2YtijZbi5AAAAAElFTkSuQmCC",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Monday, June 15, 2020