从远程服务器到本地服务器的Sftp文件
问题描述:
对不起,如果它太简单的问题。但我是Java开发人员,不知道shell脚本。 我用Google搜索,但无法找到我正在寻找什么。从远程服务器到本地服务器的Sftp文件
我要求
- 连接到使用SFTP [认证基于发布/ PRI 键]远程服务器。指向私钥文件的变量
- 将带有 特定扩展名[.log]的文件传输到本地服务器文件夹。变量设置 远程服务器的路径和本地文件夹
- 重命名转移文件中 远程服务器
- 登录的所有传输文件.txt文件
任何一个可以给我的shell脚本此?
这是迄今为止我陷害的建议。 还有一些问题留在我身边;)
export PRIVKEY=${private_key_path}
export [email protected]
export RMTDIR=/logs/*.log
export LOCDIR=/downloaded/logs/
export LOG=sucess.txt
scp -i $PRIVKEY $RMTHOST:$RMTDIR $LOCDIR
for i in 'ls -1 $LOCDIR/*.log'
do
echo $i >> $LOG
done
ssh $RMTHOST -c "for i in `ls -1 $RMTDIR; do mv /logs/$i /logs/$i.transferred; done"
答
这个怎么样的做法?
- 连接到使用SFTP [认证基于发布/ PRI键]远程服务器。指向私钥文件的变量
- 将具有特定扩展名[.log]的文件传输到本地服务器文件夹。变量设置远程服务器的路径和本地文件夹
scp [email protected]:/dir/of/file/*.log /your/local/dir
- 登录的所有传输文件.txt文件
for i in `ls -1 /your/local/dir/*.log`
do
echo $i >> $your_txt
done
- 重命名该在远程服务器
ssh [email protected] -c "for i in `ls -1 /dir/of/file/*.log; do mv /dir/of/file/$i /dir/of/file/new_name_based_on$i; done"
答
使用SCP(安全复制)命令来传输文件。您可能还想添加压缩文件的-C开关。这可以加快一点。即在Server1到Server2复制文件1,
在server1上:
#!/bin/sh scp -C /home/user/file1 [email protected]:/home/user
编辑:
#!/bin/sh scp -i {path/to/pub/pri/key/file} /home/user/file1 [email protected]:/home/user
您能否将其附加/编写为完整的脚本文件?除了ls和chmod [基本命令],不知道linux脚本 – Reddy 2013-03-08 10:07:50
如果任何文件传输失败,for条件怎么知道它? – Reddy 2013-03-08 10:08:55
关于脚本文件,这将是一个加入我指出的部分的问题。请先尝试一下,然后再回答具体问题。 – fedorqui 2013-03-08 10:27:40