Перемонтирование /home в новом томе

Использование SED:

Вариант 1:

sed -e 's#,\([^ ]\)#|\1#g;s#"##g;s#|,#||#g' file

12584|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
25841|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
87455|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
  • \([^ ]\)заменить все запятые, за которыми не следует пробел.
  • Затем удалите "и замените запятую перед префиксом |.

обычно в контексте запятая ставится с пробелом. Если не в вашем случае, попробуйте приведенный ниже код.

Вариант 2:

sed -e  's#^#\n#;:a;s#\n\([^,"]\|"[^"]*"\)#\1\n#;ta;s#\n,#|\n#;ta;s#\n##;s#"##g' file

12584|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
25841|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
87455|Capital of America, Inc.||HORIZONCAPITAL|USA|......etc
0
18.08.2020, 23:36
2 ответа

Я предполагаю, что /mnt/volume_nyc1_01является точкой монтирования для нового тома ext4. В /etc/fstabесть строка, в которой этот том смонтирован на /mnt/volume_nyc1_01.

Шаги, которые вы упомянули, не являются технически неправильными, но если вы будете следовать им, вы получите пустой /homeкаталог -, так как это новый ext4 fs, только lost+foundтам будет.

В таких случаях я выполняю следующие шаги::

  • Остановить любой сервис, демон или приложение с помощью /home.
    lsof |grep "/home"может помочь вам в этом.
  • Оставьте пока /etc/fstabбез изменений и скопируйте все данные из /homeв /mnt/volume_nyc1_01.
    Я бы использовал эту команду:
    sudo rsync -aHAXS /home/* /mnt/volume_nyc1_01
  • После того, как все будет успешно скопировано, вы можете приступить к описанным вами шагам. Новый том будет смонтирован как /homeи будет содержать все ваши данные.

Если все запущено и работает, в какой-то момент в будущем вы можете размонтировать новый том из точки монтирования /homeи удалить файлы в каталоге /home, которые все еще будут там, и освободить место на первом томе.. Будьте осторожны, /homeпо-прежнему является каталогом на 1-м томе, который также используется в качестве точки монтирования для 2-го тома. Таким образом, удаление файлов из каталога /homeвозможно без удаления файлов из 2-го тома, если вы сначала размонтируете 2-й том. Если все это кажется сложным, просто оставьте туда старые файлы.

1
18.03.2021, 23:11

Мой первый ответ на это :НЕ ДЕЛАЙТЕ. Если вы не знаете, что делаете, вы можете потерять свой (и любой другой )домашний каталог. Особенно способ, который вы упомянули выше.

Поскольку вы не упомянули приложение, с которым работаете, я просто дам несколько общих советов:

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

       find the app's current data storage dir, then
     $mkdir <app mount point>
     $mount </dev/sdX> <app mount point> (where </dev/sdX> is the new drive)
     $cp -pr <current app data> <app mount point>
       using your favorite text editor, add a new line to "/etc/fstab" that looks like this:
    
       </dev/sdX>   <app mount point>    ext4    defaults   1 1  
    
     finally, change the app's data storage preference to <app mount point>
    

    (проверьте man fstab, чтобы увидеть формат и значение записей для этой строки)

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

  1. Немного опаснее, вы можете смонтировать новый диск в качестве домашнего каталога:

            using your favorite text editor, add a new line to "/etc/fstab" that looks like this:
    
         </dev/sdX>   <app mount point>    ext4    defaults   1 1
    
           Mount the drive /dev/sdX at some temporary point and copy your currrent home dir to the new mount point:
    
         $mount </dev/sdX>  /mnt
         $cp -pr /home/you/* /mnt/.
           reboot, and you should be able to login as before, and nothing else would have (should have?) changed.
    

Как я постоянно говорю, это опасно, если вы не знаете, что делаете.

1
18.03.2021, 23:11

Теги

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