Tho*_*sen 4 ssh ubuntu sudo restore dump
我继承了其需要升级到20.04 Ubuntu的14.04生产服务器,我想一个沙盒版本,以实验第一,所以我想dump和restore过,无论是从MacOS的或其他14.04 VirtualBox虚拟实例的网络文件系统。此问题的早期版本位于https://askubuntu.com/q/1314747/963。
服务器无法“看到”我的机器,因此我无法轻松运行转储并将结果远程推送到我的机器,但需要从我的机器调用 ssh 来运行转储。
ssh -t me@there "echo MYPASSWORD | sudo -S dump -y -f - /boot 2>/dev/null " > boot.dump
Run Code Online (Sandbox Code Playgroud)
问题是我发现运行此命令会在\r字符前插入大量字符,\n这会破坏转储文件,因此restore无法使用它。我知道这可能是由于驱动程序将换行符转换为打印所需的字符,但我没有看到这是在哪里触发的。
我应该如何执行此操作以获得正确的二进制转储文件?
use*_*777 10
这是ONLCR .c_oflag这是造成换行符(termios的设定\n),以变成回车/换行符(\r\n由伪终端通过分配的)ssh在远程机器上(由于SSH的-t选项)。
关闭它stty -onlcr:
ssh -t me@there 'stty -onlcr; ...' > output
Run Code Online (Sandbox Code Playgroud)