У меня есть скрипт, который запускает ssh-соединение. , поэтому переменная $ssh
начнет соединение ssh.Как скопировать echo 'x' в файл во время ssh-соединения
так $SSH
имя хоста дает имя хоста, где я схожу. Теперь я пытаюсь что-то повторить и скопировать вывод эха в файл.
SSH = "SSH -tt -i key.pem пользователь @ ec2 инстанции"
Когда я выполнить вручную SSH к хосту и выполнять:
sudo sh -c "echo 'DEVS=/dev/xvdbb' >> /etc/sysconfig/docker-storage-setup"
это работает. Но когда я выполняю
${SSH} sudo sh -c "echo 'DEVS=/dev/xvdb' > /etc/sysconfig/docker-storage-setup"
это не похоже на работу.
EDIT: Кроме того, используя тройник работает отлично после выполнения SSH вручную, но не похоже на работу после SSH в script.sh
эхо команды после SSH сценария происходит на моей реальной host (откуда я запускаю скрипт, а не хост, где я выполняю ssh). Таким образом, файл на моем реальном хосте изменяется, а не файл на моем хосте, где я выполнил ssh.
Когда я пытаюсь правильный ответ здесь: http://superuser.com/questions/400714/how-to -remotely-write-to-a-file-using-ssh Я получил разрешение, которое запрещено. (даже если я выполняю sudo) –
Если вы оставите '>' unquoted, вы измените локальный системный файл. Как написано, этого не должно быть. Покажите полученную «ошибку разрешения» и команду, которую вы используете. Также покажите локальный файл до и после. Также запустите 'set -x', а затем запустите команду (используя' sh -cx') и покажите результат. –