aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkvmx17
-rw-r--r--kvmxfile7
2 files changed, 23 insertions, 1 deletions
diff --git a/kvmx b/kvmx
index 885ebec..a3edb7c 100755
--- a/kvmx
+++ b/kvmx
@@ -716,6 +716,11 @@ function kvmx_up {
echo "nohup $startup_command" | kvmx ssh $VM &> /dev/null &
fi
+ if [ ! -z "$startup_rsync_to_guest" ] && [ "$ssh_support" == "y" ]; then
+ echo "Rsyncing to guest: $startup_rsync_to_guest..."
+ kvmx_rsync_to $startup_rsync_to_guest
+ fi
+
kvmx_status
}
@@ -981,6 +986,16 @@ function kvmx_poweroff {
exit 1
fi
+ if [ ! -z "$poweroff_pre_command" ] && [ "$ssh_support" == "y" ]; then
+ echo "Running $poweroff_pre_command..."
+ echo "nohup $poweroff_pre_command" | kvmx ssh $VM &> /dev/null &
+ fi
+
+ if [ ! -z "$poweroff_rsync_from_guest" ] && [ "$ssh_support" == "y" ]; then
+ echo "Rsyncing to guest: $poweroff_rsync_from_guest..."
+ kvmx_rsync_to $poweroff_rsync_from_guest
+ fi
+
if [ "$run_xpra" == "1" ]; then
$DIRNAME/$BASENAME xpra $VM stop
fi
@@ -1132,7 +1147,7 @@ function kvmx_rsync_to {
rsync -av --delete -e "$SSH_COMMAND -o Port=$SSH" --rsync-path "sudo rsync" $ORIG/ 127.0.0.1:$DEST/
}
-# Rsync files to the guest
+# Rsync files from the guest
function kvmx_rsync_from {
if ! kvmx_running; then
echo "$BASENAME: guest $VM is not running"
diff --git a/kvmxfile b/kvmxfile
index 25f676d..8d0a07a 100644
--- a/kvmxfile
+++ b/kvmxfile
@@ -79,6 +79,13 @@ shared_folder_mountpoint="/home/$user/code/$VM"
#startup_command="/path/to/custom/command"
#startup_command="hydractl aperiodic-upgrade"
+# Pre-poweroff command
+#poweroff_pre_command="/path/to/custom/command"
+
+# Rsync commands to be run on startup or poweroff, useful to keep files synced between host and guest
+#startup_rsync_to_guest="data /var/data"
+#poweroff_rsync_from_guest="/var/data data"
+
# Graphics
# See https://wiki.archlinux.org/index.php/QEMU#Graphics
#graphics="-vga std -nographic -vnc :$GUEST_DISPLAY"