-
代码发布
步骤,流程
1 获取代码
程序员提交代码到代码服务器2 打包代码(代码服务器执行)
方便传输
tar zcf 压缩文件名 待压缩内容
tar xf 压缩文件名
zcat 压缩文件名 (查看压缩包内容)3 传输代码
线上服务器–获取—》代码服务器代码
scp 远程主机:绝对路径 目标路径
先登录后拷贝4 关闭应用
先关离用户近的,后关离用户远的5 解压代码
6 放置代码
先备份后放置
备份加时间戳
mv tar_code.tar.gz ~/tar_code.tar.gzdate +%Y%m%d%H%M%S
7 开启应用
先开离用户远,在开离用户近的8 检查
netstat -ntl | grep 80 -
基础目录环境
mkdir /data/{server,logs,backup,softs,virtual,scripts,codes} -p
一步创建所有目录–》父目录不存在一并创建 -
主机网络环境
1 客户端生成密钥对(在线上服务器运行)
ssh-keygen -t rsa
公钥放在:/root/.ssh/id_rsa.pub
2 将公钥传给服务器(传给代码服务器)
在代码服务器中/etc/ssh/sshd_config定义了秘钥存储文件(AuthorizedKeysFile %h/.ssh/authorized_keys)
echo “公钥”>> authorized_keys
3 重启ssh服务 (在代码服务器执行) -
Django安装
1 虚拟环境安装
1 进入虚拟环境
export WORKON_HOME=/data/virtual/
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv -p python3 django
2 sz rz(xshell)
3 安装django
1 查看INSTALL
2 python setup.py build(可选)
3 python setup.py install
4 配置django
1 创建项目
django-admin startproject itcast
2 创建应用
python manage.py startapp test1
修改test1/views.py
3 注册应用
修改 itcast/settings.py
4 关联URL
修改 itcast/urls.py
5 启动django
python manage.py runserver > /dev/null 2>&1 & -
nginx 安装
1 pcre插件安装(nginx依赖旧版本pcre)
./configure && make && make install
./configure 裁剪软件 定制安装路径
make 编译
make install 安装2 nginx安装
./configure --prefix=/data/server/nginx --without-http_gzip_module
(指定安装路径在/data/server/nginx,裁剪gzip模块)
make && make install动态库链接失败 ldd 查找搜索路径 ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/libpcre.so.1 (创建软连接) 配置代理: http配置段server段增加location配置 location /hello/ { proxy_pass http://127.0.0.1:8000; }
-
手工代码发布
1 获取代码2 打包代码(代码服务器执行)
cd /home/dev/data/codes
tar zcf tar_code.tar.gz test1/
3 传输代码
cd /data/codes
scp dev@192.168.42.71:/home/dev/data/codes/tar_code.tar.gz .
4 关闭应用
cd /data/server/nginx/sbin
./nginx -s stop
killlsof -ti :8000
5 解压代码
cd /data/codes
tar xf tar_code.tar.gz
6 放置代码
cd /data/server/itcast/test1
mv views.py /data/backup/views.py-date +%Y%m%d%H%M%S
cd /data/codes/test1
mv views.py /data/server/itcast/test1/
7 开启应用
export WORKON_HOME=/data/virtual/
source /usr/local/bin/virtualenvwrapper.sh
workon django
cd /data/server/itcast
python manage.py runserver > /dev/null 2>&1 &
cd /data/server/nginx/sbin
./nginx
8 检查
netstat -ntl | grep 80 -
简单脚本编写
1 命令罗列
2 固定内容变量化(方便修改)
3 功能函数化(方便扩展)远程执行命令:
ssh 远程主机登录用户名@远程主机ip地址 “命令” -
大型脚本编写
1 搭建框架(将步骤变成函数)
2 命令填充(将命令写到函数内)
3 日志功能:
1 定义写日志函数(将时间日期步骤等信息重定向追加到文件)
2 在各个函数内调用写日志函数4 锁文件功能:
1 编写加锁解锁函数—》创建和删除文件
2 在所有步骤之前先调用加锁函数,所有步骤完毕后调用解锁函数
3 在脚本执行前先判断文件是否存在5 功能参数化
case判断脚本参数是否是当前支持的功能
增加参数个数安全性的判断
11 脚本调试
bash -n 脚本名 检查语法
bash -v 脚本名 先打印一遍脚本内容再执行
bash -x 脚本名 打印一句执行一句