MQTT в качестве переменной на Bash?

, поскольку у вас есть пустые 600 ГБ, вы можете смонтировать текущий жесткий диск и скопировать его файлы на 600 ГБ!
или , вы можете создать новую резервную копию с помощью dd + gzip, и у вас будет возможность восстановить жесткий диск без проблем с потерей места.

, если вы хотите сделать это из текущей запущенной операционной системы:

смонтируйте текущий жесткий диск (поскольку это ext4, он может быть смонтирован в разных местах).

sudo mkdir ~/bk/{0,1}
sudo mount /dev/SRC_HD ~/bk/0
sudo mount /dev/DST_HD ~/bk/1
sudo copy -arxp ~/bk/0/* ~/bk/1/

теперь вы внесете некоторые изменения, если хотите загрузиться с 600 ГБ.

используйте blkid , чтобы получить UID HD

SRC_HDUUID="7ahzj19f-a2b2-4f24-bb01-4ca7bc9fed3a"
DST_HDUUID="7aaeb19f-a2b2-4f24-ffc1-4ca7bc9fed3a"

sudo grep "$SRC_HDUUID" /etc /boot -rl | while read f
do
    sed -i "s/$SRC_HDUUID/$DST_HDUUID/g" $f
done

sudo umount -fl ~/bk/*

обновить личинку в вашей текущей ОС, он

sudo update-grub

перезагрузится в вашу новую копию внутри $ DST_HD, а затем протрите свой SRC_HD или любой другой.

если вы хотите сделать это из живой ОС с помощью gzip dd gunzip:

снова сделайте резервную копию вашего SRC_HD в необработанном образе

dd if=/dev/SRC_HD | gzip -c  > /inside/your600/image.img

восстановите его из необработанного образа

gunzip -c /inside/your600/image.img | dd of=/dev/SRC_HD

, но перед восстановлением хорошо вымыть ваш SRC_HD

при промывке жесткого диска создает файл на жестком диске, заполненный нулями, и удаляет этот файл!

sudo dd if=/dev/zero of=/where/hardrive/mountd/zero

в зависимости от размера жесткого диска это займет некоторое время и остановится с сообщением «диск заполнен»!

sudo rm /where/hardrive/mountd/zero
2
03.01.2019, 16:02
2 ответа

Просто выполните:

mosquitto_sub -h localhost -t "#"  -C 1  > /var/spool/mosquitto/value
1
27.01.2020, 22:17

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

Message=`mosquitto_sub -d -t "test/test"`

Если вы хотите использовать переменную вместо команды, вы должны написать такую ​​строку:

Message="mosquitto_sub -d -t 'test/test'"

Вы должны ожидать появления специального символа в скрипте bash

0
27.01.2020, 22:17

Теги

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