环境描述:cognos cube在windows上生成,服务器在linux上,需要将每天更新的cube文件上传到linux服务器。
1、Windows上传文件到linux,有ftp和sftp方式,本次采用sftp方式:
下载putty中psftp.exe程序
新建upload.txt文件,代码如下:
open 192.168.6.65
cd /home/cognos/cube/test
mput -r C:\Users\yangxu\Desktop\cube\HXEY_MZSF\*
bye
上面代码意思是:连接linux服务器192.168.6.65 ,上传本地文件夹C:\Users\yangxu\Desktop\cube\HXEY_MZSF\中所有文件到linux服务器/home/cognos/cube/test地址下。
新建bat文件,test.bat,代码如下:
cd C:\Users\yangxu\Desktop\cube\HXEY_MZSF\
@echo off
setlocal enabledelayedexpansion
(for /f "delims=" %%i in (hxey_mzsf.vcd) do (
set line=%%i
set line=!line:\=/!
echo !line!
))>hxey_mzsf1.vcd
del hxey_mzsf.vcd
tr -d "\r"<hxey_mzsf1.vcd>hxey_mzsf.vcd
del hxey_mzsf1.vcd
cd C:\soft\putty
psftp -l cognos -pw cognos -b upload.txt
exit
注意:upload.txt和test.bat需要放在同一文件夹中才行
下面依次解释下代码意思:
cd C:\Users\yangxu\Desktop\cube\HXEY_MZSF\ --------cd到windows本地上传目录,即需要上传文件所在目录
@echo off
setlocal enabledelayedexpansion
(for /f "delims=" %%i in (hxey_mzsf.vcd) do (
set line=%%i
set line=!line:\=/!
echo !line!
))>hxey_mzsf1.vcd ------------------将windows中\替换为/,因为在windows格式文件和linux文件格式斜杠方向不一致,需要做转换才可以使用
tr -d "\r"<hxey_mzsf1.vcd>hxey_mzsf.vcd ---------------将文件hxey_mzsf1.vcd中回车换行符号CRLF替换为linux下LF,此处感谢网络上大神指点
cd C:\soft\putty -------cd到存放psftp.exe程序的目录
psftp -l cognos -pw cognos -b upload.txt 调用同一文件夹中的upload.txt配置,上传文件到指定目录。
至此整个过程梳理完毕