• Please be aware: Kaspersky Anti-Virus has been deprecated
    With the upgrade to Plesk Obsidian 18.0.64, "Kaspersky Anti-Virus for Servers" will be automatically removed from the servers it is installed on. We recommend that you migrate to Sophos Anti-Virus for Servers.
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Resolved Migration from Plesk 11 to Plesk Onyx 17 rsync errors

TomP

Basic Pleskian
I have several sites being migrated from Centos 5.9; Plesk 11.0.9 to a new ‪CentOS Linux 7.3.1611; Plesk Onyx 17.0.17. I ended up with a common error from all the Drupal sites.
I set the Drupal sites up on the old server using a multi site setup that shares a single Drupal installation. The individual site files are under a single directory for each website. In plesk I had to set each user as their own site, then I symlinked their httpdocs dir to the httpdocs in the shared Drupal installation. (hopefully that makes sense)

After running the migration I got the same error for each of the sites:

Failed to copy web files for subscription 'websitename.com'
Migration tools tried to perform operation in 3 attempts: Rsync failed to copy files from the source (the source server 'source' (xxx.xx.165.50)) to the target server (target Plesk server): Command execution failed on the local server with non-zero exit code.
command: /usr/bin/rsync -e 'ssh -i /usr/local/psa/var/modules/panel-migrator/sessions/20170110102734/target-server/ssh-keys/id_rsa.xxx.xx.165.50 -p 22 -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no' --archive --exclude=/logs --exclude=/conf --exclude=/statistics --exclude=/pd --exclude=/bin --exclude=/dev --exclude=/lib --exclude=/lib64 --exclude=/usr --exclude=/libexec --exclude=/etc --exclude=/tmp --exclude=/var [email protected].165.50:/var/www/vhosts/websitename.com/ /var/www/vhosts/websitename.com/
exit code: 23
stdout: cannot delete non-empty directory: httpdocs

stderr: could not make way for new symlink: httpdocs
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [generator=3.0.9]

The xxx.xx.165.50 is the IP for the old server. Does this sound familiar to anyone? Thanks
 
Hello Tomp,

Unfortunately You are using Plesk in non standard configurations and Plesk or Plesk Migrator not support such cases.
The folder httpdocs should be as folder and not a symlink because it is a default part of vhost skeleton and present after creation of domain.
As workaround you can ignore this error and create symlinks on the target server manually.
 
Hello Tomp,

Unfortunately You are using Plesk in non standard configurations and Plesk or Plesk Migrator not support such cases.
The folder httpdocs should be as folder and not a symlink because it is a default part of vhost skeleton and present after creation of domain.
As workaround you can ignore this error and create symlinks on the target server manually.

As you were posting this, I was trying the very thing. It all seems to be working OK for now. I wish I could come up with a better way to do multiple sites on Drupal through Plesk, but this seems to be the only way. Thanks for the help.
 
We've run into this issue as well. What I don't understand then is why Plesk allows setting the symbolic link as the document root to begin with if it's just going to cause failure during migrations. Seems to me that either:

1. Plesk should block using symbolic links as the document root, OR
2. It should be supported during migration.

Since the failure occurs during rsync, shouldn't it be as simple as adding `--keep-dirlinks` to the rsync command?

Error from migration (where httpdocs is a symlink):
command: umask 022; /usr/bin/rsync -e 'SSH_CONNECTION_STRING_SNIPPED' --timeout=30 --recursive --links --times --devices --specials --owner --group --perms --exclude=/logs --exclude=/conf --exclude=/statistics --exclude=/bin --exclude=/dev --exclude=/etc --exclude=/lib --exclude=/lib64 --exclude=/opt --exclude=/sbin --exclude=/tmp --exclude=/usr --exclude=/var root@[SERVER_IP]:[SRC_PATH] [DST_PATH]
exit code: 23
stdout: cannot delete non-empty directory: httpdocs
 
Back
Top