Hi Paul,
I think you're hitting a bug/limitation in our Alpha release. In Alpha, the 'staged_source' input to your 'linked.pre_snapshot' method will have a property called 'connection', which refers to the *source* host only.
This is fixed in Beta. In Beta, the 'staged_source' input to your presnapshot method will have two properties, 'source_connection' and 'staged_connection', and so you can run bash scripts on either the source host or the staging host (or both), depending on what makes sense for your application.
I am not aware of a great workaround for this in Alpha.