Vim配合Shell自动上传ftp
shell代码:
#!/bin/bash
#网站配置
a1=('本地目录;主机;yonghuming;mima;远程目录' '本地目录;主机;user;pwd;远程目录')
#选取的网站配置
web=""
#本地根目录
webroot="本地apache网站根目录"
website1=`echo $1|awk '{split($0,tA,/本地apache网站根目录/);print tA[2];}'`
website=`echo $website1|awk 'BEGIN{FS="/"}{print $1}'`
if [ "$website1" = "$website" ];then
website=""
fi
#获得网站配置
for row in ${a1[@]}
do
arr=`echo $row|awk 'BEGIN{FS=";"}{print $1}'`
if [ "$website" = "$arr" ];then
web=$row
fi
done
#获得主机
hostname=`echo $web|awk 'BEGIN{FS=";"}{print $2}'`
echo $web
#获得用户
user=`echo $web|awk 'BEGIN{FS=";"}{print $3}'`
#获得密码
pwd=`echo $web|awk 'BEGIN{FS=";"}{print $4}'`
#获得本地目录
lcd="$webroot$website"
#获得文件路径
filename=$1
#获得文件名
ext=`echo $filename|awk '{st=match($0,/\/[^\/]*$/);tA=substr($0,st+1);printf tA;}'`
#获得远程目录
dir=`echo "$filename;$lcd"|awk 'BEGIN{FS=";"}{len=length($2);st=match($1,/\/[^\/]*$/);tA=substr($1,len,st-len);print tA;}'`
if [ "$dir" = "" ];then
dir="./"
fi
cd=`echo $web|awk 'BEGIN{FS=";"}{print $5}'`"/$dir"
#ftp连接
ftp -n $hostname<<EOF
user $user $pwd
binary
cd "$cd"
put "$filename" "$ext"
ls
bye
EOF
.vimrc添加:
function! Ftp()
let file=expand("%:p")
let cmd='source ~/autoftp.sh "'.file.'"'
let log=system(cmd)
echo log
endfunction
map <F5> :call Ftp()<CR>
map! <F5> <ESC>:call Ftp()<CR>
Vim配合Shell自动上传ftp的更多相关文章
- 4Linux环境变量、Vim、Shell脚本
环境变量 命令在Linux中的执行分为4个步骤: 1.以路径的形式来执行 2.命令的别名形式来执行,alias 新命令=“原始命令”,新命令与原始命令互不冲突,可以同时使用,重启失效,修改/etc/p ...
- vim与shell切换
扩展一些vim的知识. vim与shell切换 :shell 可以在不关闭vi的情况下切换到shell命令行. :exit 从shell回到vim. 文件浏览 :Ex 开启目录浏览器,可以浏览当前目录 ...
- macos Item2 添加 Shell Integration (ftp传输)
macos系统 的item2软件 的 Shell Integration (ftp传输) 功能强大,无需 安装其他ftp软件,也是为了保证 密码安全 在使用时报错如下(因为本地 ping不通): ...
- shell 脚本FTP自动上传文件
下面的脚本 会把本地的文本文件压缩后, 上传到FTP服务器上. 里面有一点小逻辑, 就是上传的文本文件 是 日期时间.txt 形式的, 一天写一个日志文件, 今天的文件不上传, 只上传 老的日志文件. ...
- 批处理程序:自动上传FTP,再登陆linux服务器执行更新
----转载请注明出处:博客园-邦邦酱好 最近在学批处理程序,一直没找到能够结合工作来使用它的地方,前几天测试服务端的时候突然想到可以这样做: 写一个批处理程序,自动通过FTP上传软件包到指定的地方, ...
- Shell自动上传下载文件到SFTP服务器
1.说明 本文提供一个Shell脚本, 可以自动连接到SFTP服务器, 然后上传或者下载指定的文件, 进而可以使用Linux的corntab命令, 定时执行脚本上传下载文件, 实现文件的同步或者备份功 ...
- vim与shell的切换
方法1: vim->shell: ctrl-z (挂起vim进程,相当于图形界面中的最小化) shell->vim: fg (foreground) 方法2: vim->shel ...
- shell通过ftp实现上传/下载文件
直接代码,shell文件名为testFtptool.sh: #!/bin/bash ########################################################## ...
- sed命令详解 vim高级技巧 shell编程上
第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 10 ...
随机推荐
- java排查故障
java排查故障top -Hp 31327 #或top -p 31327,再按shift+h,-H则是线程开关,传入该参数的话,top界面会显示所有单独的线程列表) ##31327为java进程,拿到 ...
- 设置TextField的响应View和toolBar
inputView 设置用于展示的响应View 类似于键盘的展示方式 inputAccessoryView 用于设置响应View上面的ToolBar 使用方式: inputView设置为响应View ...
- Pyqt5_QPushButton
QPushButton 状态 isDown() 提示按钮是否已按下 isChecked() 提示按钮是否已经标记 isEnable() 提示按钮是否可以被用户点击 isCheckAble() 提示按钮 ...
- WordPress 伪静态规则(IIS/Apache/Nginx)
不少朋友总是询问 WordPress 如何添加伪静态规则,今天倡萌就总结一下 Apache/Nginx 三种环境下的伪静态规则,希望对大家有所帮助. 检测主机是否支持伪静态的方法:在WP后台 > ...
- PHP链式操作原理
1)第一种方法 <?php /* *类功能:实现数据库的连贯查询操作 */ class mysql_query{ var $tbl=’user’;//要操作的表名 var $limit=”;// ...
- Spring_api方式实现aop
第一步: public interface UserService { public void add(); public void update(int a); public void delete ...
- Kubernetes学习笔记(八):Deployment--声明式的升级应用
概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod ...
- Oracle 利用PLSQL一分钟将表结构(PROJ),从A库移植到B库,一分钟将A库中表数据移植到B库中!!!
导读(苦恼) 做多个项目的时候,可能会有这样的需求,需要把A项目中的某些功能移植到B项目上:移植途中,牵扯到顺便把表也要一块移植过去,若表字段较少,那还好,可能耗费10分钟就搞完了,万一碰上几十个字段 ...
- [256个管理学理论]005.羊群效应(Herd Behavior)
羊群效应(Herd Behavior) 来自于大洋彼岸的让你看不懂的解释: “羊群效应”,也叫“从众效应”,是个人的观念或行为由于真实的或想像的群体的影响或压力,而向与多数人相一致的方向变化的现象.表 ...
- vue 使用 elementUI 和 antd 的细微差别
Checkbox a-checkbox 没有value属性,绑定用checked Collapse 使用折叠面板的时候,antd 的层级关系是 .ant-collapse >.ant-colla ...