rsync с --delete-before, за исключением случая, когда источник пуст

Я создаю резервную копию жесткого диска с помощью rsync --delete-before cron. Проблема в том, что если жесткий диск с исходными текстами выйдет из строя, то rsync считает его пустым, и все удаляется из резервной копии - именно то, что вы не хотите, чтобы это случилось. Я бы предпочел, чтобы задание cron выполняло скрипт, который запускает команду rsync только в том случае, если исходный текст не пустой. Возможно ли получить помощь в написании скрипта?

1
задан 18 April 2021 в 05:51

1 ответ

Системы Ubuntu должны иметь пакеты winbind и libnss-winbind и модификацию/etc/nsswitch.conf. Строка хостов в/etc/nsswitch.conf требует выигрышей между файлами и mdns4, она должна читать:

hosts: files wins mdns4_minimal [NOTFOUND = return] dns

Модель 2WIRE/маршрутизатор может назначать локальные адреса в другом диапазоне (192,168,1 .nnn), в то время как маршрутизатор TP-LINK может назначать адреса в диапазоне (192,168,0 .nnn Проверьте настройки брандмауэра на всех системах локальной сети.

Пакеты Ubuntu winbind и libnss-winbind необходимы для подключений, связанных с системами Windows.

Системы Ubuntu в локальной сети никогда не могли разрешить локальные адреса любых других систем, поэтому теперь локальные адреса жестко кодируются в файле/etc/hosts в каждой системе Ubuntu. Системы Windows способны разрешать локальные имена - для этой разницы у меня нет объяснения.

-121--913607-

SWAP

Я подозреваю, что раздел 4G swap слишком мал для текущего использования.

Примечание : Может потребоваться добавить больше оперативной памяти (см. Обновление # 1).

Мы увеличим ваш своп путем создания нового/swapfile, редактирования/etc/fstab и удаления раздела свопа.

Примечание : Неправильное использование команд rm и dd может привести к потере данных. Предложение копирования/вставки.

В терминале ...

sudo swapoff -a           # turn off swap
sudo rm -i/swapfile # удалить старый/swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm 8G RAM and 8G swap

Отредактируйте/etc/fstab, используя sudo -H gedit/etc/fstab или sudo pico/etc/fstab .

Подтвердите эту/swapfile строку в/etc/fstab... и подтвердить отсутствие других "своповых" строк... используйте SPACES в этой строке... подтвердить NO TABS...

Прокомментируйте эту строку...

UUID=7d274857-3e37-4991-8dda-48a22bfdf7b6 none            swap    sw              0       0

Добавить эту строку...

/swapfile  none  swap  sw  0  0

Удалите старый раздел подкачки с помощью gparted . ПОДТВЕРДИТЕ , что/dev/sda8 имеет UUID = 7d274857-3e37-4991-8dda-48a22bfdf7b6 с помощью sudo blkid | grep -i swap . Если они совпадают, удалите раздел/dev/sda8. БУДЬТЕ ОСТОРОЖНЫ ЗДЕСЬ .


reboot                    # reboot and verify operation

Обновление # 1:

catkin build

Рекомендуется изменить catkin build -j1 package_name на catkin build -j7 package_name (для использования 7 CPU в 8 системе CPU) для оптимизации процесса сборки.

BIOS

HP ZBook Studio G3 Мобильная рабочая станция

Версия BIOS N82 Ver. 01.45 с 17 января 2020 года. Более новая версия BIOS 01,52 Rev.A доступна с 6 ноября 2020 г. здесь .

Примечание: Подтвердите, что у меня есть правильная веб-страница для вашей модели #.

Примечание. Перед обновлением BIOS

Memory

Имеется один из двух разъемов памяти, заполненных 8G SODIMM.

 *-bank:0
      description: SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2133 MHz (0,5 ns)
      product: M471A1K43CB1-CRC
      vendor: Samsung
      physical id: 0
      serial: 0305815B
      slot: Top-Slot 1(left)
      size: 8GiB
      width: 64 bits
      clock: 2133MHz (0.5ns)

Заполните второй пустой слот другим 8G Samsung M471A1K43CB1-CRC для 16G общей оперативной памяти с перемежением памяти. См. раздел https ://www.amazon.com/Samsung-Notebook-Memory-M471A1K43CB1-CRC-DDR4-2400/dp/B06XPWJJPL .

Примечание: Мне нужно проверить максимальный объем оперативной памяти для этого компьютера...

enter image description here

Примечание: Источник https://support.hp.com/us-en/product/hp-zbook-studio-g3-mobile-workstation/8934839/product-info

-121--913608-

Если исходный диск выйдет из строя, то rsync будет прерван. Единственный сценарий, в котором rsync будет продолжаться, даже если папка пуста, это когда эта папка является точкой подключения для жесткого диска, но этот жесткий диск не монтируется.

Вы, конечно, можете сделать небольшой сценарий, чтобы проверить, смонтирован или нет диск, но более простой защитой от этого ловушки было бы не использовать точку монтирования в качестве источника для rsync .

Вместо этого используйте несколько команд rsync для резервного копирования каждой папки под точкой подключения или, лучше, переместите все содержимое корня этого раздела (файлы и папки, которые вы видите в точке подключения) в одну подпапку. Затем можно создать резервную копию всего содержимого, создав резервную копию этой подпапки. Если диск не будет смонтирован, подпапка (источник для rsync ) не будет там и rsync не будет продолжена (удаление назначения).

Достаточно просто получить доступ к данным там, где они должны находиться: используйте символьные ссылки.

2
ответ дан 23 April 2021 в 23:21

Другие вопросы по тегам:

Похожие вопросы: