recently we need to migrate our church’s
Drupal site from godaddy vps to aws. The
php/mysql part is kind of straightforward. The last task is to transfer the video/audio files to EBS. Since the size is pretty big(30~GB), we do not want to download to local and upload again. So
scp becomes the choice. The command will be something like
scp -r vpsUser@vpsDomain:/vps/site/path/files/audio /aws/ebs/files
But if the session terminates, it will be interrupted. So we need
nohup to help.
nohup scp -r vpsUser@vpsDomain:/vps/site/path/files/audio /aws/ebs/files
however this way, it runs in foreground not ideal. we need to add
& to the end.
nohup scp -r vpsUser@vpsDomain:/vps/site/path/files/audio /aws/ebs/files &
but now the problem is we have no way to input password and get the below error message:
nohup: ignoring input and appending output to `nohup.out'
this is just because the process is suspended to receive a user input for password.
Seems to be the dead end. Now the solution is still run the scp nohup in foreground so that we can input password, then use
ctrl-z to suspend, and then use
bg to send it to background. and if you want to bring it back,
fg is the command to run. also use
jobs command to check existing ones, or just use
ps aux | grep scp.