日期:2014-05-16  浏览次数:20789 次

C程序调用system启动rsync,密码不知道怎么输入。

在Linux系统中,当前目录下有一个静态编译好的rsync,执行./rsync然后输入密码是能够正常运行的。现在我在C程序中调用system("./rsync -vzr dir1 192.168.1.11:/root/dir2"); shell终端提示我要输入密码,但是我不知道该怎么样在C程序里把密码输入。




------解决方案--------------------
system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
------解决方案--------------------
设置ssh 不需要密码
1、客户端产生公钥,执型下面命令,按两次【Enter】,产生公钥id_rsa.pub
ssh-keygen -f id_rsa -t rsa
2、上传公钥文件到服务器
scp id_rsa.pub root@xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys
3、保存私钥
cp id_rsa ~.ssh

如果成功,则ssh到服务器不询问密码