Рейтинг:0

Как добавить строку в /etc/fstab через ssh

флаг cn

У меня есть программа автомонтирования жесткого диска.

Программное обеспечение использует ssh для отправки запросов к целевой машине. Идея в том, что вновь установленный hdd автоматически добавляется в fstab.

У меня все работает до такой степени, что запись строки fstab готова к добавлению в файл.

Я пытаюсь добавить это в свое программное обеспечение:

command.RunCommandSudo($"echo \"{mountstring}\" >> /etc/fstab");

в результате ssh-запрос следующего формата:

sudo echo "UUID=X /mnt/test ext4 по умолчанию 0 1" >> /etc/fstab 

=> Разрешение отклонено

как было бы уместно? Я сомневаюсь, что подходящим способом для автоматизированного программного обеспечения будет использование текстового редактора, такого как nano?

Matt Murphy avatar
флаг ng
Я думаю, что косвенность командной строки (>>) не может быть интерпретирована как привязанная к эху, так сказать. Я предполагаю, что вместо этого он получает вывод из sudo.
Рейтинг:2
флаг cn

Как это

sudo su -c "echo 'UUID=X /mnt/test ext4 по умолчанию 0 1' >> /etc/fstab"

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

Мне больше нравится делать это так:

grep -q '/mnt/test' /etc/fstab || 
printf 'UUID=X /mnt/test ext4 по умолчанию 0 1\n' >> /etc/fstab

используя для этого пользователя root.

Рейтинг:2
флаг id

Другой способ — использовать тройник команда.

ИМЯ
       tee - чтение из стандартного ввода и запись в стандартный вывод и файлы

СИНТАКСИС
       tee [ОПЦИЯ]... [ФАЙЛ]...

ОПИСАНИЕ
       Скопируйте стандартный ввод в каждый ФАЙЛ, а также в стандартный вывод.

       -а, --добавлять
              добавить к указанным ФАЙЛАМ, не перезаписывать

Итак, для вашей команды вы можете сделать это следующим образом:

echo "UUID=X /mnt/test ext4 по умолчанию 0 1" | sudo tee -a /etc/fstab

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.