从安全服务器获取文件列表

我试图从安全服务器上获取文件列表,以比较它们(使用差异)到我修改的本地版本(不幸的是,我工作的公司不是使用颠覆,也没有Git)

我可以轻松获得文件列表:

find . -mtime -20 | grep "\.php\|\.js\|\.css" > changedfiles.log 

我需要的是一个脚本,它将遍历这个列表并安全地将它们中的每一个(scp或rsync)复制到本地目录,保留相对path名。 我试过了:

 for line in `cat changedfiles.log` do DIRPATH=`dirname "$line"` `mkdir -p myfiles/$DIRPATH` scp user@host:/remotepath/$line myfiles/$line done 

SCP不断要求我的密码(我不想设置密码为基础的密码为scp无密码)

我不允许ssh在远程服务器上,所以我不能在一个命令下拉列表并下载它们

是否有可能做一些input密码只有一次?

创build密码保护密钥,并使用ssh-agent确保每个作业只需input一次,而不是设置无密码密钥。

在生成你的密钥之后,用你的脚本加上这样的前缀:

 # Start a new agent eval `ssh-agent -s` # add keys with a two-hour time limit ssh-add -t 7200 ~/.ssh/id_rsa 

此时,系统会提示您input密码。 在你的脚本完成后,如果你不想让它继续运行,你可以自动终止ssh-agent:

 # kill the agent ssh-agent -k