Сценарий оболочки для переключения между двумя командами

После расширения объема в vmWare ESXi (shutdown vm, backup / export vm, удалите все снимки, затем увеличьте число в размере диска, сделайте снимок vm снова, прежде чем следовать следующим шагам, чтобы вы могли вернуть ошибку / ошибку). [ ! d0]

Следующий пример: расширение тома на корневом разделе в системе, которая уже использует LVM.

SSH в систему, переключиться на root и запустить cfdisk # cfdisk После выхода из cfdisk [ f1] Перезагрузите систему перед следующим шагом (иначе вы можете получить Device /dev/sda3 not found (or ignored by filtering))
 # shutdown now -r
Инициализировать новый том
 # pvcreate /dev/sda3
   Physical volume "/dev/sda3" successfully created
Получить имя тома для расширения
 # vgdisplay
   --- Volume group ---
   VG Name               linuxetc1-vg (***** this is vg i'm extending*****)
   System ID             
   Format                lvm2
   Metadata Areas        1
   Metadata Sequence No  3
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                2
   Open LV               2
   Max PV                0
   Cur PV                1
   Act PV                1
   VG Size               7.52 GiB
   PE Size               4.00 MiB
   Total PE              1925
   Alloc PE / Size       1925 / 7.52 GiB
   Free  PE / Size       0 / 0  
   ...
Расширить группу томов
 # vgextend linuxetc1-vg /dev/sda3
   Volume group "linuxetc1-vg" successfully extended
Расширить root
 # lvextend -l+100%FREE /dev/linuxetc1-vg/root
   Size of logical volume linuxetc1-vg/root changed from 6.52 GiB (1669 extents) to 18.52 GiB (4741 extents).
   Logical volume root successfully resized.


 Or if you only wanted to give 5 more GB to root
 # lvextend -L +5g /dev/linuxetc1-vg/root
Получить файловую систему имя для следующего шага
 # df -h
 Filesystem                      Size  Used Avail Use% Mounted on
 udev                            477M     0  477M   0% /dev
 tmpfs                           100M  4.6M   95M   5% /run
 /dev/mapper/linuxetc1--vg-root  6.3G  2.5G  3.5G  42% /            (***** this line*****)
 tmpfs                           497M     0  497M   0% /dev/shm
 tmpfs                           5.0M     0  5.0M   0% /run/lock
 tmpfs                           497M     0  497M   0% /sys/fs/cgroup
 /dev/sda1                       472M  105M  343M  24% /boot
 tmpfs                           100M     0  100M   0% /run/user/1000
Расширение файловой системы
 # resize2fs /dev/mapper/linuxetc1--vg-root
 resize2fs 1.42.13 (17-May-2015)
 Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
 old_desc_blocks = 1, new_desc_blocks = 2
 The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
См. увеличенный размер
 # df -h
 Filesystem                      Size  Used Avail Use% Mounted on
 udev                            477M     0  477M   0% /dev
 tmpfs                           100M  4.6M   95M   5% /run
 /dev/mapper/linuxetc1--vg-root   19G  2.5G   15G  15% /         (***** this line*****)
 tmpfs                           497M     0  497M   0% /dev/shm
 tmpfs                           5.0M     0  5.0M   0% /run/lock
 tmpfs                           497M     0  497M   0% /sys/fs/cgroup
 /dev/sda1                       472M  105M  343M  24% /boot
 tmpfs                           100M     0  100M   0% /run/user/1000

Статьи: https://wiki.ubuntu.com/Lvm http://www.geoffstratton.com/expand -hard-disk-ubuntu-lvm

6
задан 6 June 2012 в 08:36

9 ответов

Хорошим способом выполнения этого является создание сценария для пустого «файла конфигурации»:

В первый раз, когда скрипт запускается, он видит, что файл не существует, создает его и запускает [F2]. Во второй раз, когда скрипт запускается, он видит, что файл существует, удаляет его и запускает command2. В третий раз, когда скрипт запускается, он видит, что файл не существует, создает его и запускает command1. В 4-й раз, когда скрипт запускается, он видит, что файл существует, удаляет его и запускает command2.

И так далее.

Вот сценарий, который делает это:

#!/bin/sh
# This shell script is PUBLIC DOMAIN. You may do whatever you want with it.

TOGGLE=$HOME/.toggle

if [ ! -e $TOGGLE ]; then
    touch $TOGGLE
    command1
else
    rm $TOGGLE
    command2
fi
10
ответ дан 25 May 2018 в 10:33
  • 1
    Огромное спасибо! – era878 6 June 2012 в 09:52
  • 2
    Небольшим улучшением будет файл семафора (touch .xxx) для «последней команды» с известным первым выбором. – david6 6 June 2012 в 13:10
  • 3
    @ david6 Вы можете отправить свой собственный ответ. Мне непонятно, почему это было бы лучше или как вы намереваетесь его реализовать. – Eliah Kagan 14 August 2012 в 02:00

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 31 July 2018 в 11:19

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 2 August 2018 в 00:47

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 4 August 2018 в 16:17

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 6 August 2018 в 00:56

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 7 August 2018 в 18:22

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

10
ответ дан 15 August 2018 в 19:04
  • 1
    Огромное спасибо! – era878 6 June 2012 в 09:52
  • 2
    Небольшим улучшением будет файл семафора (touch .xxx) для «последней команды» с известным первым выбором. – david6 6 June 2012 в 13:10
  • 3
    @ david6 Вы можете отправить свой собственный ответ. Мне непонятно, почему это было бы лучше или как вы намереваетесь его реализовать. – Eliah Kagan 14 August 2012 в 02:00

Вы можете записать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

0
ответ дан 25 May 2018 в 10:33

Вы можете написать файл с последней командой. Затем, когда он снова запускается, вы читаете файл и видите, какая команда была выполнена.

0
ответ дан 25 July 2018 в 18:37

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

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