社区
Linux/Unix社区
帖子详情
C程序调用system启动rsync,密码不知道怎么输入。
Jackindata
博客专家认证
2012-08-29 02:54:27
在Linux系统中,当前目录下有一个静态编译好的rsync,执行./rsync然后输入密码是能够正常运行的。现在我在C程序中调用system("./rsync -vzr dir1 192.168.1.11:/root/dir2"); shell终端提示我要输入密码,但是我不知道该怎么样在C程序里把密码输入。
...全文
336
8
打赏
收藏
C程序调用system启动rsync,密码不知道怎么输入。
在Linux系统中,当前目录下有一个静态编译好的rsync,执行./rsync然后输入密码是能够正常运行的。现在我在C程序中调用system("./rsync -vzr dir1 192.168.1.11:/root/dir2"); shell终端提示我要输入密码,但是我不知道该怎么样在C程序里把密码输入。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jackindata
2012-08-31
打赏
举报
回复
我也看到过有用expect来实现密码输入的。但是开发板的剪裁过的Linux系统也不支持这个expect 。
Jackindata
2012-08-31
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
rsync是通过ssh来建立连接的。如果我直接在shell终端下执行 echo 123 | ssh 192.168.1.11 来建立ssh连接,会有如下出错提示:Pseudo-ter……
[/Quote]
ssh 加入-tt 选项就没有那个错误了。执行 echo 123 | ssh -tt 192.168.1.11 还是会提示输入密码,输入密码123后,链接到ssh成功,而且123被当作命令来执行了。而且,用键盘输入其他命令如ls都执行不了。只能Ctrl+c退出ssh返回到本机终端。
Jackindata
2012-08-31
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
设置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
如果成功,则ss……
[/Quote]
这个方法我试过,但由于我的客户端rsync运行在开发板上,没有ssh-keygen工具。
root_jli
2012-08-31
打赏
举报
回复
设置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到服务器不询问密码
Jackindata
2012-08-31
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
[/Quote]
rsync是通过ssh来建立连接的。如果我直接在shell终端下执行 echo 123 | ssh 192.168.1.11 来建立ssh连接,会有如下出错提示:Pseudo-terminal will not be allocated because stdin is not a terminal 。而先执行 ssh 192.168.1.11 再按提示输入密码是可以正常ssh的。
lylm
2012-08-30
打赏
举报
回复
system("echo password|./rsync -vzr dir1 192.168.1.11:/root/dir2")
或者rsync可以配置成不用密码的
jianzhibeihang
2012-08-30
打赏
举报
回复
这个问题有点意思
貌似没啥办法啊
Linux-Torvalds
2012-08-29
打赏
举报
回复
估计这样子很难做到。
rsync
命令教程 在对
rsync
服务器配置结束以后,下一步就需要在客户端发出
rsync
命令来实现将服务器端的文件备份到客户端来。
rsync
是一个功能非常强大的工具,其命令也有很多功能特色选项。
Rsync
命令详解 在对
rsync
服务器配置结束以后,下一步就需要在客户端发出
rsync
命令来实现将服务器端的文件备份到客户端来。
rsync
是一个功能非常强大的工具,其命令也有很多功能特色选项。 一、
rsync
的六种工作模式: 1.1、拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就
启动
这种工作模式。 1.2、使用一个远程shell
程序
(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时
启动
该模式。 1.3、使用一个远程shell
程序
(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时
启动
该模式。 1.4、从远程
rsync
服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时
启动
该模式。 1.5、从本地机器拷贝文件到远程
rsync
服务器中。当DST路径信息包含"::"分隔符时
启动
该模式。 1.6、列远程机的文件列表。这类似于
rsync
传输,不过只要在命令中省略掉本地机信息即可。 二、
rsync
的命令格式可以为:
rsync
[OPTION]... SRC [SRC]... [USER@]HOST:DEST
rsync
[OPTION]... [USER@]HOST:SRC DEST
rsync
[OPTION]... SRC [SRC]... DEST
rsync
[OPTION]... [USER@]HOST::SRC [DEST]
rsync
[OPTION]... SRC [SRC]... [USER@]HOST::DEST
rsync
[OPTION]...
rsync
://[USER@]HOST[:PORT]/SRC [DEST] 2.1、用法 2.1.1在使用
rsync
传输文件时,需要指定一个源和一个目的,其中一个可能是远程机器的资源信息。例如: #
rsync
*.c servivcer:src/ 表示将传输当前目录下所有以.c结尾的文件到机器servivcer的src目录下。如果文件已经存在于远程机器,则会
调用
远程更新协议来实现仅仅传输那些更新过的文件。
rsync
-avz servivcer:src/bar /data/tmp 该命令则递归地传输机器servivcer上的src/bar目录下的所有内容到本地/data/tmp/bar目录中。文件以归档模式进行传输,以确保符号链结、属性、权限、属主等信息在传输中都被保存。此外,可以使用压缩技术来加快数据传输:
rsync
-avz servivcer:src/bar/ /data/tmp 路径信息以"/"结尾时表示拷贝该目录,而不以"/"结尾表示拷贝该目录。当配合使用--delete选项时这两种情况的区别将会表现出来。 2.1.2也可以以本地模式来使用
rsync
,如果SRC和DST路径中都没有任何":"符号则表示该命令运行在本地模式,等同于cp命令。
rsync
somehost.mydomain.com:: 这种模式则将会列出somehost.mydomain.com.可以访问的所有模块信息。 选项说明 -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息
rsync
servivcer/bar/servivcer.c remote:/tmp/ 则在/tmp目录下创建servivcer.c文件,而如果使用-R参数:
rsync
-R servivcer/bar/servivcer.c remote:/tmp/ 则会创建文件/tmp/servivcer/bar/servivcer.c,也就是会保持完全路径信息。 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 --safe-lin
acl-anthology:用于构建ACL Anthology的数据和软件
ACL选集 这些是生成ACL Anthology网站的基本说明,如。 该存储库的官方主页是 。 选集 先决条件 要构建Anthology网站,您需要: Python 3.7或更高版本 在bin/requirements.txt列出的Python软件包; 要安装,请运行pip -r bin/requirements.txt 或更高版本(可以;需要扩展版本!) 用于创建非BibTeX引用格式的 (并非严格要求构建网站,但是如果没有它们,则您需要按照所述手动
调用
构建步骤) 可选:如果在第一次运行make之前安装libyaml-dev和Cython ,将使用libyaml C库而不是python实现,从而加快了构建速度。 使用GitHub构建和部署 有一个GitHub action操作直接从GitHub执行部署。 要使用此功能,您需要在存储库设置(Web界面:设置->机密)中定义以下变量: PUBLISH_TARGET :
rsync
将把选集推送到该目标(例如, user@aclweb.org:anthology-static ) PUBLISH_SSH_KEY :标准pem格式的密
java
调用
Rsync
并发迁移数据并执行校验
java
调用
Rsync
并发迁移数据并执行校验 讲真这件事做起来挺坑的,不
知道
为什么
rsync
没带多线程的功能?试过后我就懂了,这是个单线程工具,用在多线程上要规避很多问题。但是最终我还是成功了。填坑指数三颗星。(刚开始差点准备直接用java实现
rsync
功能,后来想想不造轮子了吧,把成型工具改好了就成。)
linux
rsync
启动
脚本,利用shell开发
rsync
服务
启动
脚本
利用shell函数开发
rsync
服务
启动
脚本,之前的不够专业#!/bin/bash#chkconfig:23452080#这两行加入kconfig#description:Savesandrestoressystementropypoolsource/etc/init.d/functions#
调用
标准的函数库aa(){...
java
调用
rsync
_ubuntu使用
rsync
+ssh备份
服务器一直没做备份,丢失信息,很惨,以后都使用
rsync
+ssh来同步服务器重要文件了。WEB是要备份的服务器,CLIENT是放备份的服务器1 在WEB上编写
rsync
备份脚本,使用root权限cron定时推送2
rsync
命令行语法如下
rsync
-vzrtopg --delete -e ssh /var/www njava@bak-server01:/bak/www
rsync
-vclRarp...
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章