1

Я использовал Transmit.app для синхронизации моего локального каталога веб-сайта с /home/public на моем удаленном веб-хосте.

Однако мне надоело делать это графически, нажимая 10-15 раз, каждый раз, когда я вносил небольшие изменения в свой сайт.

Как я могу сделать это из командной строки? У меня есть SSH доступ к моему удаленному веб-хосту. Я никогда не использовал rsync некоторые указатели могут быть полезны.

2 ответа2

1

Что-то вроде этого:

rsync -avh --delete /local/directory username@remotehost:/home/public

Это создаст directory в /home/public . Однако если вы хотите, чтобы содержимое directory находилось непосредственно в /home/public используйте что-то вроде (обратите внимание, что завершающий слеш):

rsync -avh --delete /local/directory/ username@remotehost:/home/public

Проверьте man rsync для большего количества вариантов. Те, которые использовались выше:

  • --delete удалит несуществующие файлы на удаленном хосте, поэтому будьте осторожны с тем, что вы переносите.
  • a предназначен для "архивирования" и должен быть полезен в большинстве случаев
  • h включит удобочитаемые размеры файлов

Некоторые дополнительные опции, которые вы можете использовать:

  • --progress чтобы увидеть текущий прогресс, а также
  • --dry-run чтобы увидеть, что теоретически будет передано (но на самом деле ничего не передается)
1
rsync -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/

Довольно просто и понятно.

Надеюсь, вы используете git в своем процессе разработки, тогда вы можете просто использовать его вместо этого.

Больше информации о rsync здесь:

http://www.linux.com/news/enterprise/storage/8200-back-up-like-an-expert-with-rsync

Для развертывания с помощью git:

http://philsturgeon.co.uk/news/2010/02/Deploying-websites-with-Git

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .