скопировать все файлы в один раздел в папку в другом разделе и обновить символические ссылки

У меня есть два раздела:

/dev/sda установлен как / /dev/sdb установлен ias /stuff

Я хочу скопировать все, начиная с / до /stuff/backup, но я также хочу, чтобы символические ссылки обновлялись до пункта / в /stuff/backup.

Например, если у меня есть символическая ссылка:

/path/to/some/link -> /path/to/the/real/file

Затем после его резервного копирования он должен выглядеть так:

/stuff/backup/path/to/some/link -> /stuff/backup/path/to/the/real/file

Я немного искал Google, но не могу понять этого.

2
задан 15 July 2017 в 07:12

3 ответа

Из обсуждения, IMO, tar - лучший инструмент, так как он сохранит ссылки. Я также предлагаю сделать это с живого компакт-диска. Вы установили бы свой корневой раздел ubuntu и cd в него.

Если вы создаете резервную копию базы данных, используйте инструменты базы данных, то есть mysqldump

Из работающей системы (не live usb) :

ПРИМЕЧАНИЕ: просмотрите эти исключения перед тем, как выполнить эту команду, см. ниже.

Минимальное исключение будет /proc /tmp /mnt /dev и /sys Другие необязательны, но значительно уменьшат размер вашей резервной копии

cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM /
tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \ 
--exclude=/media \ 
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \ 
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \ 
--exclude=/home/*/.local/share/Trash /

Это сжимает архив, полностью переносится и находится в /backup.tar.gz

Что означают опции: от https://help.ubuntu.com/community/BackupYourSystem/TAR

tar - это команда, которая создает архив. Он изменяется каждой буквой сразу после, каждый из них поясняется ниже. c - создать новый резервный архив. v - режим verbose, tar будет печатать то, что он делает на экране. p - сохраняет разрешения файлов, помещенных в архив для восстановления позже. z - сжимать файл резервной копии с помощью «gzip», чтобы сделать его меньше. f - указывает, где хранить резервную копию, backup.tar.gz - это имя файла, используемое в этом примере. Он будет сохранен в текущем рабочем каталоге, который вы установили, когда вы использовали команду cd.

\ просто продолжайте команду на следующей строке, и я добавил их для ясности.

--exclude должен быть само собой разумеющимся, но он исключает эти каталоги.

Вы можете использовать опцию --one-file-system, а не все исключения для / proc, / sys, / mnt, / media, / run и / dev, однако, если у вас есть отдельный / boot или / home (или другой раздел), вам нужно будет добавить его в архив.

Вы можете исключить каталоги, которые, как вы знаете, вам не нужны, т. е. не имеют прав. /usr/share или схожим.

Чтобы просмотреть содержимое, см. https://help.ubuntu.com/community/BackupYourSystem/TAR

Вы можете видеть содержимое файла с vim / gvim и различиями в списках с zdiff

ПРИМЕЧАНИЕ. Просмотрите эти исключения, прежде чем запускать эту команду, подробнее см. ниже. : Из комментариев «Он бомбит половину путь через показ: / lib / plymouth / themes / / lib / plymouth / themes / ubuntu-text / tar: /: файл изменен, когда мы читаем его через 10 минут на мини-PCIe SSD (канал Sata II). некоторое время для тонкой настройки »

Это происходит из-за того, что файловая система используется, поэтому при внесении изменений на диск во время tar вы получите такие сообщения. Эту проблему можно избежать, исключив как можно больше из архива tar и / или запуска tar с живого CD / USB

. Кроме того, из комментариев другие кандидаты на исключение: [!d26 ]

~ / .cache # Эти файлы абсолютно не нужны, и на самом деле вы можете в любое время восстановить дисковое пространство, удалив этот каталог.

/ usr / src / linux-headers * # Опять же, большие количество данных, которые вам не нужны.

~ / .local / share / Trash # Просмотрите и удалите мусор или исключите этот каталог

/ media # Будет иметь, например, разделы Windows

/ var / run / user / $ USER / ..., который является символической ссылкой для / run, поэтому I --exclude = / run. # У этого есть съемные устройства, такие как флэш-драйвер и устройства Android, поэтому, вероятно, можно исключить.

3
ответ дан 22 May 2018 в 20:32
  • 1
    Это также отличный ответ на вопрос «Как полностью выполнить резервное копирование Ubuntu?» И +1 . Каталог ~/.cache большой, но я не знаю, что в нем можно исключить. – WinEunuuchs2Unix 16 July 2017 в 22:25
  • 2
    Вы можете исключить все ~ / .cache. Если вы это сделаете, используйте полный путь --exclude=/home/your_user/.cache – Panther 16 July 2017 в 22:28
  • 3
    Я бы тоже исключил этот каталог. Как вы можете видеть, этот метод резервного копирования дает вам очень большой размер. Трудно написать одну команду, которая работает для всех. Лично на рабочих станциях я только резервное копирование / home и на серверах, если я редактирую файл конфигурации, я сохраняю копию в / root, а резервная копия сервера - это / root, / home и данные сервера, такие как mysql, / var / www / html и аналогичные и любые общие пользовательские данные. Меньшее количество резервных копий. – Panther 16 July 2017 в 23:03
  • 4
    Я резервирую журналы отдельно. – Panther 16 July 2017 в 23:05
  • 5
    Мой ~/.cache равен 1 ГБ, поэтому я исключил его вместе с /usr/src/linux-headers*, который имеет 21 ядер. ~/.local/share/Trash был огромным и вызвал резервное копирование, чтобы исчерпать дисковое пространство, поэтому его нужно было опорожнить. /media имел указатели на Windows на /dev/sdb, который составлял 60 ГБ, поэтому должен был быть --exclude. Мой телефон Android находится в /var/run/user/$USER/..., который является символической ссылкой на /run, поэтому я --exclude=/run. – WinEunuuchs2Unix 17 July 2017 в 00:06

Из обсуждения, IMO, tar - лучший инструмент, так как он сохранит ссылки. Я также предлагаю сделать это с живого компакт-диска. Вы установили бы свой корневой раздел ubuntu и cd в него.

Если вы создаете резервную копию базы данных, используйте инструменты базы данных, то есть mysqldump

Из работающей системы (не live usb) :

ПРИМЕЧАНИЕ: просмотрите эти исключения перед тем, как выполнить эту команду, см. ниже.

Минимальное исключение будет /proc /tmp /mnt /dev и /sys Другие необязательны, но значительно уменьшат размер вашей резервной копии

cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM / tar -cvpzf backup.tar.gz \ --exclude=/backup.tar.gz \ --exclude=/proc \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/dev \ --exclude=/sys \ --exclude=/run \ --exclude=/media \ --exclude=/var/log \ --exclude=/var/cache/apt/archives \ --exclude=/usr/src/linux-headers* \ --exclude=/home/*/.gvfs \ --exclude=/home/*/.cache \ --exclude=/home/*/.local/share/Trash /

Это сжимает архив, полностью переносится и находится в /backup.tar.gz

Что означают опции: от https://help.ubuntu.com/community/BackupYourSystem/TAR

tar - это команда, которая создает архив. Он изменяется каждой буквой сразу после, каждый из них поясняется ниже. c - создать новый резервный архив. v - режим verbose, tar будет печатать то, что он делает на экране. p - сохраняет разрешения файлов, помещенных в архив для восстановления позже. z - сжимать файл резервной копии с помощью «gzip», чтобы сделать его меньше. f - указывает, где хранить резервную копию, backup.tar.gz - это имя файла, используемое в этом примере. Он будет сохранен в текущем рабочем каталоге, который вы установили, когда вы использовали команду cd.

\ просто продолжайте команду на следующей строке, и я добавил их для ясности.

--exclude должен быть само собой разумеющимся, но он исключает эти каталоги.

Вы можете использовать опцию --one-file-system, а не все исключения для / proc, / sys, / mnt, / media, / run и / dev, однако, если у вас есть отдельный / boot или / home (или другой раздел), вам нужно будет добавить его в архив.

Вы можете исключить каталоги, которые, как вы знаете, вам не нужны, т. е. не имеют прав. /usr/share или схожим.

Чтобы просмотреть содержимое, см. https://help.ubuntu.com/community/BackupYourSystem/TAR

Вы можете видеть содержимое файла с vim / gvim и различиями в списках с zdiff

ПРИМЕЧАНИЕ. Просмотрите эти исключения, прежде чем запускать эту команду, подробнее см. ниже. : Из комментариев «Он бомбит половину путь через показ: / lib / plymouth / themes / / lib / plymouth / themes / ubuntu-text / tar: /: файл изменен, когда мы читаем его через 10 минут на мини-PCIe SSD (канал Sata II). некоторое время для тонкой настройки »

Это происходит из-за того, что файловая система используется, поэтому при внесении изменений на диск во время tar вы получите такие сообщения. Эту проблему можно избежать, исключив как можно больше из архива tar и / или запуска tar с живого CD / USB

. Кроме того, из комментариев другие кандидаты на исключение:

~ / .cache # Эти файлы абсолютно не нужны, и на самом деле вы можете в любое время восстановить дисковое пространство, удалив этот каталог.

/ usr / src / linux-headers * # Опять же, большие количество данных, которые вам не нужны.

~ / .local / share / Trash # Просмотрите и удалите мусор или исключите этот каталог

/ media # Будет иметь, например, разделы Windows

/ var / run / user / $ USER / ..., который является символической ссылкой для / run, поэтому I --exclude = / run. # У этого есть съемные устройства, такие как флэш-драйвер и устройства Android, поэтому, вероятно, можно исключить.

3
ответ дан 18 July 2018 в 10:15

Из обсуждения, IMO, tar - лучший инструмент, так как он сохранит ссылки. Я также предлагаю сделать это с живого компакт-диска. Вы установили бы свой корневой раздел ubuntu и cd в него.

Если вы создаете резервную копию базы данных, используйте инструменты базы данных, то есть mysqldump

Из работающей системы (не live usb) :

ПРИМЕЧАНИЕ: просмотрите эти исключения перед тем, как выполнить эту команду, см. ниже.

Минимальное исключение будет /proc /tmp /mnt /dev и /sys Другие необязательны, но значительно уменьшат размер вашей резервной копии

cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM / tar -cvpzf backup.tar.gz \ --exclude=/backup.tar.gz \ --exclude=/proc \ --exclude=/tmp \ --exclude=/mnt \ --exclude=/dev \ --exclude=/sys \ --exclude=/run \ --exclude=/media \ --exclude=/var/log \ --exclude=/var/cache/apt/archives \ --exclude=/usr/src/linux-headers* \ --exclude=/home/*/.gvfs \ --exclude=/home/*/.cache \ --exclude=/home/*/.local/share/Trash /

Это сжимает архив, полностью переносится и находится в /backup.tar.gz

Что означают опции: от https://help.ubuntu.com/community/BackupYourSystem/TAR

tar - это команда, которая создает архив. Он изменяется каждой буквой сразу после, каждый из них поясняется ниже. c - создать новый резервный архив. v - режим verbose, tar будет печатать то, что он делает на экране. p - сохраняет разрешения файлов, помещенных в архив для восстановления позже. z - сжимать файл резервной копии с помощью «gzip», чтобы сделать его меньше. f - указывает, где хранить резервную копию, backup.tar.gz - это имя файла, используемое в этом примере. Он будет сохранен в текущем рабочем каталоге, который вы установили, когда вы использовали команду cd.

\ просто продолжайте команду на следующей строке, и я добавил их для ясности.

--exclude должен быть само собой разумеющимся, но он исключает эти каталоги.

Вы можете использовать опцию --one-file-system, а не все исключения для / proc, / sys, / mnt, / media, / run и / dev, однако, если у вас есть отдельный / boot или / home (или другой раздел), вам нужно будет добавить его в архив.

Вы можете исключить каталоги, которые, как вы знаете, вам не нужны, т. е. не имеют прав. /usr/share или схожим.

Чтобы просмотреть содержимое, см. https://help.ubuntu.com/community/BackupYourSystem/TAR

Вы можете видеть содержимое файла с vim / gvim и различиями в списках с zdiff

ПРИМЕЧАНИЕ. Просмотрите эти исключения, прежде чем запускать эту команду, подробнее см. ниже. : Из комментариев «Он бомбит половину путь через показ: / lib / plymouth / themes / / lib / plymouth / themes / ubuntu-text / tar: /: файл изменен, когда мы читаем его через 10 минут на мини-PCIe SSD (канал Sata II). некоторое время для тонкой настройки »

Это происходит из-за того, что файловая система используется, поэтому при внесении изменений на диск во время tar вы получите такие сообщения. Эту проблему можно избежать, исключив как можно больше из архива tar и / или запуска tar с живого CD / USB

. Кроме того, из комментариев другие кандидаты на исключение:

~ / .cache # Эти файлы абсолютно не нужны, и на самом деле вы можете в любое время восстановить дисковое пространство, удалив этот каталог.

/ usr / src / linux-headers * # Опять же, большие количество данных, которые вам не нужны.

~ / .local / share / Trash # Просмотрите и удалите мусор или исключите этот каталог

/ media # Будет иметь, например, разделы Windows

/ var / run / user / $ USER / ..., который является символической ссылкой для / run, поэтому I --exclude = / run. # У этого есть съемные устройства, такие как флэш-драйвер и устройства Android, поэтому, вероятно, можно исключить.

3
ответ дан 24 July 2018 в 19:32

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

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