На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> rsync синхронизация папок
    Есть две папки dir1 и dir2

    В dir2 файлы всё время прибавляются и обновляются.

    Необходимо в dir1 удалить старые файлы - (старее некоторого времени), обновить оставшиеся и загрузить новые не загрузив при этом те которые были удалены ранее в dir1.

    Можно сделать двумя командами:
    ExpandedWrap disabled
      find /dir1 -type f -mtime +5 -delete
      find /dir2 -type f -mtime -5 | xargs -n 1 -I % cp  -fdp "%"  /dir1


    но тогда cp перезапишет и не обновлённые файлы, а это лишнее время. Если вместо второй строки использовать rsync то она запишет и те файлы которые не нужны, старые по времени которые были удалены при помощи find - первая строка.

    Как перезаписать только те файлы которые обновились и записать новые?
      Какая файловая система? Да, в принципе, и какая ось или дистрибут?
        Что то я совсем.........
        надо вот так:
        ExpandedWrap disabled
          find /dir1 -type f -mtime +5 -delete
          find /dir2 -type f -mtime -5 | xargs -n 1 -I % rsync --progress "%" /dir1


        Всё вопрос закрыт.
          Хоть и закрыт вопрос, у rsync есть флаг --delete-excluded
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0175 ]   [ 15 queries used ]   [ Generated: 28.03.24, 18:30 GMT ]