时间:2021-07-01 10:21:17 帮助过:13人阅读
#!/bin/bash # Add your ssh key to the remote server before running this# Where are the local files going to be savedLOCALDIR=~/local/dev/www/ # No trailing / please on this one belowREMOTEDIR=/var/www/vhosts/yourdomain.co.nz/httpdocs # Remote MySQL connection detailsREMOTE_SQL_USER=databaseusernameREMOTE_SQL_PASS=JGOIDBp4553ghREMOTE_SQL_DB=databasename # Local MySQL connection detailsLOCAL_SQL_USER=databaseusernameLOCAL_SQL_PASS=JGOIDBp4553ghLOCAL_SQL_DB=databasename # Remote host IPREMOTE_HOST=49.50.242.111REMOTE_USER=root ssh ${REMOTE_USER}@${REMOTE_HOST} "mysqldump -u${REMOTE_SQL_USER} -p${REMOTE_SQL_PASS} ${REMOTE_SQL_DB} >/tmp/${REMOTE_SQL_DB}.sql" rsync -avP ${REMOTE_USER}@${REMOTE_HOST}:$REMOTEDIR/* ${LOCALDIR} rsync -avP ${REMOTE_USER}@${REMOTE_HOST}:/tmp/${REMOTE_SQL_DB}.sql /tmp/mysql -u${LOCAL_SQL_USER} -p${LOCAL_SQL_PASS} ${LOCAL_SQL_DB} < /tmp/${REMOTE_SQL_DB}.sql |
Edit the script as needed to reflect the database/files/etc you want, then run ./sync.sh
To make this really seamless, use ssh keys to login. If you want to have this on a cron, make sure you put the full path to the rsync and mysql, or any other binaries used.