各位devops:
请扔掉jenkins的publish-over-ssh,拥抱sshfs吧。
我观devops有个需求,很多jar项目应用,在linux上开发。在win上测试,或部署,
或者win上开发的.net core应用,需要部署在linux上,
或者在win上用powershell处理,linux上的日志。
遂有此贴。
本人 原创文章。始于 2018-10-05,2019-03-08改
问:如何把linux机子,的根文件系统,映射成win的盘符,如【z:】?
答:
win上的powershell访问z:盘,就是远程干活,远程读写linux上的文档。
有几种sshfs软件。现介绍一种如下:
1 下载安装【stable稳定版】的winfsp。
https://github.com/billziss-gh/winfsp/releases/
2 下载安装【stable稳定版】的win-sshfs
https://github.com/billziss-gh/sshfs-win/releases/
3 用【无管理员权限的】powershell.exe,运行下列脚本。
============================【ys映射z盘.ps1】============================
cd 'c:\Program Files\SSHFS-Win\bin\'
$env:PATH='C:\Program Files\SSHFS-Win\bin'
echo '你的密码' | sshfs.exe root@192.168.2.3:/ z: -o StrictHostKeyChecking=no -o password_stdin
=======================================================
注意:
1 不能直接编辑linux上的文件。但可以本地编辑文件,粘贴到linux上,覆盖文件。
2 支持cmd.exe;支持powershell.exe;支持【文件管理器-图形界面】中,访问linux文件;支持虚拟机。
3 关闭sshfs.exe,则映射结束,盘符消失。
4 可以同时运行多个sshfs.exe,映射出多个(不同)盘符。
5 若需调整细节。可运行:
c:
cd "\Program Files\SSHFS-Win\bin"
sshfs.exe -h
来研究命令行的参数。
6 不支持.bat。下述代码不灵,我也不知道为啥。
=======================================================
c:
cd "\Program Files\SSHFS-Win\bin\"
set PATH=C:\Program Files\SSHFS-Win\bin
echo 你的密码 | sshfs.exe root@192.168.2.3:/ y: -o StrictHostKeyChecking=no -o password_stdin
=======================================================
问:如何让(win《---》linux)之间复制文件后,继续脚本操作?
答:
以从win到linux为例:
2.1 映射盘符,就有了win-linux公共目录。
2.2 利用盘符(公共目录),用【win中的脚本】从win复制文件到linux。
2.3 【win中的脚本】复制文件完毕后,在公共目录上,建立一个特殊文件,作为标记。如【$$$.txt】
2.4 在linux上用任务计划,检查到此【$$$.txt】,就启动另一个脚本【/tmp/a.sh】继续后续处理。
2.5 处理完成后,删除文件【$$$.txt】,建立文件【¥¥¥.txt】之类。【win中的脚本】检测到这个文件,就进行下一步。
2.6 成功。
这就是复制文件后,用消息通知的法子。让对方后续处理。这个方法,我称之为【回调法】。
这个方法的优点是,win中不用开监听端口,win可以在内网(或子网中)。
后记:
powershell是可以在linux上安装的。
powershell是可以在linux上调试的。用vscode即可,只不过稍微反应慢,中文字体也不如win好看。
-------------【本帖结束,谢谢观看】-------------
请扔掉jenkins的publish-over-ssh,拥抱sshfs吧。
我观devops有个需求,很多jar项目应用,在linux上开发。在win上测试,或部署,
或者win上开发的.net core应用,需要部署在linux上,
或者在win上用powershell处理,linux上的日志。
遂有此贴。
本人 原创文章。始于 2018-10-05,2019-03-08改
问:如何把linux机子,的根文件系统,映射成win的盘符,如【z:】?
答:
win上的powershell访问z:盘,就是远程干活,远程读写linux上的文档。
有几种sshfs软件。现介绍一种如下:
1 下载安装【stable稳定版】的winfsp。
https://github.com/billziss-gh/winfsp/releases/
2 下载安装【stable稳定版】的win-sshfs
https://github.com/billziss-gh/sshfs-win/releases/
3 用【无管理员权限的】powershell.exe,运行下列脚本。
============================【ys映射z盘.ps1】============================
cd 'c:\Program Files\SSHFS-Win\bin\'
$env:PATH='C:\Program Files\SSHFS-Win\bin'
echo '你的密码' | sshfs.exe root@192.168.2.3:/ z: -o StrictHostKeyChecking=no -o password_stdin
=======================================================
注意:
1 不能直接编辑linux上的文件。但可以本地编辑文件,粘贴到linux上,覆盖文件。
2 支持cmd.exe;支持powershell.exe;支持【文件管理器-图形界面】中,访问linux文件;支持虚拟机。
3 关闭sshfs.exe,则映射结束,盘符消失。
4 可以同时运行多个sshfs.exe,映射出多个(不同)盘符。
5 若需调整细节。可运行:
c:
cd "\Program Files\SSHFS-Win\bin"
sshfs.exe -h
来研究命令行的参数。
6 不支持.bat。下述代码不灵,我也不知道为啥。
=======================================================
c:
cd "\Program Files\SSHFS-Win\bin\"
set PATH=C:\Program Files\SSHFS-Win\bin
echo 你的密码 | sshfs.exe root@192.168.2.3:/ y: -o StrictHostKeyChecking=no -o password_stdin
=======================================================
问:如何让(win《---》linux)之间复制文件后,继续脚本操作?
答:
以从win到linux为例:
2.1 映射盘符,就有了win-linux公共目录。
2.2 利用盘符(公共目录),用【win中的脚本】从win复制文件到linux。
2.3 【win中的脚本】复制文件完毕后,在公共目录上,建立一个特殊文件,作为标记。如【$$$.txt】
2.4 在linux上用任务计划,检查到此【$$$.txt】,就启动另一个脚本【/tmp/a.sh】继续后续处理。
2.5 处理完成后,删除文件【$$$.txt】,建立文件【¥¥¥.txt】之类。【win中的脚本】检测到这个文件,就进行下一步。
2.6 成功。
这就是复制文件后,用消息通知的法子。让对方后续处理。这个方法,我称之为【回调法】。
这个方法的优点是,win中不用开监听端口,win可以在内网(或子网中)。
后记:
powershell是可以在linux上安装的。
powershell是可以在linux上调试的。用vscode即可,只不过稍微反应慢,中文字体也不如win好看。
-------------【本帖结束,谢谢观看】-------------