Чи існує деяка утиліта unix, як ssh, але яка також синхронізує поточну папку з сервером? [зачинено]


1

Я був би дуже корисний, якщо б я міг зробити щось на зразок цього:

  1. перейдіть до місцевої директорії
  2. SSH до віддаленого хосту
  3. Місцевий каталог отримує синхронізацію з віддаленим хостом (локальний - & gt; віддалений)
  4. запустіть команду віддалено
  5. знову синхронізувати з результатами (віддалені - & gt; місцеві)

Чи є спосіб зробити це зі стандартними інструментами, такими як ssh або програма, яка це робить?


Майже звучить так, як ви просите процес перевірки / перевірки, як Subversion або git
warren

Ви пробували використовувати SSH для цього? Що відбувається, коли ви намагаєтеся? На даний момент ваше запитання вимагає, щоб ми рекомендували програмний продукт для цього, а рекомендаційні питання тут не стосуються Super User, оскільки використання програмного забезпечення є дуже важливим, а програмне забезпечення, яке працює сьогодні, може не працювати завтра. Вилучення рекомендаційної частини вашого питання та фокусування на проблемі та бажаному рішенні зробили б це хорошим питанням.
music2myear

Відповіді:


2

Ви можете подивитися sshfs - встановлення каталогу за допомогою SSH замість того, щоб передавати файли вперед і назад.

У цьому випадку ви повинні підключитися до сервера і змонтувати каталог вашого комп'ютера. Потім можна працювати безпосередньо з файлами, перед тим як розмотувати та відключити.

Залежно від мережі, вам може знадобитися перенаправити порт локального сервера SSH.

Це FUSE, тому немає необхідності в root / sudo.


Встановити з:

sshfs user@host:/home/myuser/mydir ./mydir

Вимкнути з:

fusermount -u ./mydir

2

Можна використовувати rsync --rsh=ssh для кроків 2 + 3, ssh для кроку 4 і rsync знову для кроку 2 + 5.

Параметри для rsync може здатися трохи складним спочатку - але ви завжди можете протестувати за допомогою --dry-run спочатку.


1
Варто відзначити, що якщо src / dest аргументи є каталогом, ви можете отримати несподівану поведінку - я завжди додаю трейлінг / до каталогів, щоб отримати послідовну поведінку, яка має сенс для мене.
Attie

... також варто навести приклад стандарту rsync -av ${SRC} ${DEST} використання.
Attie

1
@Attie Я не хотів додавати, що саме через проблеми з каталогами, які ви згадали, і перешкоджати копіювання з цього сайту ... ніхто ніколи не повинен робити це, коли справа доходить до синхронізації файлів :)
jvb

Справедливо :-)
Attie

0

Для синхронізації частини (-ів) списку - оскільки ви хочете перенести двонаправлено - ви також можете подивитися унісон , який подібний, але відрізняється від rsync. Ви можете запустити його до і після вашої команди, і вона буде синхронізувати обидві сторони.

Подібний до rsync:

  • транспорт через SSH (а також місцеві та інші)
  • диференційний перехід під капот, якщо частини файлів однакові, їх не потрібно повністю передавати, але тільки змінені (або різні) частини передаються і весь файл реконструюється з іншого боку, дуже корисно зменшити використання пропускної здатності

Різні до rsync:

  • потрібна відмова від обох кінців - і це дуже вимогливий до номера версії унісон
  • двонаправлена ​​синхронізація: синхронізує файли, змінені з часу останньої синхронізації на одному кінці на інший кінець, - і виявляє, що обидві змінилися, або ігнорується, або дозволяє вибрати
  • textui і gui для інтерактивного використання доступні, а також неінтерактивний режим

Якщо ви хочете зробити явним напрямок копіювання, я б також запропонував rsync, як і jvb в https://superuser.com/a/1219619/738892 - також починаючи з --dry-run (або -n для короткого) дуже корисно. Atties прокоментують косу риску важливо: почати з -av для копіювання каталогу (з виводу - щоб побачити, що відбувається).

Ви можете або не захочете використовувати --del і друзів, залежно від того, чи потрібно видалити файли, які зникли з SRC в DEST. Залежно від випадку використання --update (пропускає файли, новіші на DEST), може бути корисним для вас.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.