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 ...
随机推荐
- 201771010117马兴德 实验二 Java基本程序设计(1)
实验二 Java基本程序设计(1) 第一部分 理论知识的学习. 第三章Java基本程序设计结构 1 基本知识: (1)标识符:标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字 ...
- Hyperledger fabric MSP成员管理
Hyperledger fabric 1.0 基于 PKI(Public Key Infrastructure)体系,引入了MSP模块(Membership Service Provider): 成员 ...
- Crontab定时备份网站脚本及mysql数据库
1)shell脚本 #!/bin/bash #你要修改的地方从这里开始 MYSQL_USER="root" #mysql用户名 MYSQL_PASS="123456&qu ...
- python的性能测试(timeit)
import timeit def test(): lista = [] listb = [] for i in range(100): lista.append(i) for i in range( ...
- Python的元类简单介绍
* 类型 和类 在Python中,一切都是对象.类也是对象.所以一个类必须有一个类型 注意: 1.type Python3中所有的类都是通过type来创建出来的 2.object:Python3中所有 ...
- 【译】OWIN: Open Web Server Interface for .NET
主要是使用 OAuth 时,它运行在 OWIN 上,然后又出了若干问题,总之,发现对 IIS.ASP.NET 和 OWIN 理解一塌糊涂. 后面看到 OWIN: Open Web Server Int ...
- Android_存储之文件存储
前面几篇随笔 讲到的关于存储的,SharedPreferences.Room.数据库等 最终都是以文件形式 存储到手机上的(除特殊的存储于手机内存的:如Room可以创建内存数据库). 这些存储方式,A ...
- Servlet配置及生命周期
1.设置Ecilipse快捷 file new 2.创建Servlet程序 1). 创建一个 Servlet 接口的实现类. public class HelloServl ...
- 中文分词工具——jieba
汉字是智慧和想象力的宝库. --索尼公司创始人井深大 简介 在英语中,单词就是"词"的表达,一个句子是由空格来分隔的,而在汉语中,词以字为基本单位,但是一篇文章的表达是以词来划分的 ...
- SDP架构初识
实现零信任的框架主要有SDP和Google Beyondcorp模型,前者出现在乙方的安全解决方案中,后者多作为甲方落地零信任的参考.本文主要记录对SDP技术的一些初步认识. 一.SDP简介 SDP是 ...