网络环境和项目环境

网络环境(免密码认证)

1 客户端生成密钥对
	ssh-keygen -t rsa
2 公钥发给服务器
	公钥字符串存放到/home/dev/.ssh/authorized_keys(在/etc/ssh/sshd_config中的authorized_keys 配置项指定)
3 重启ssh服务

项目环境

两个重点知识点
xshell下拷贝文件(这两个命令只限于xshell)
在这里插入图片描述
rz win----》linux (需要安装)
sz linux—》win
kill lsof -ti :8000 杀死进程

1 python虚拟环境
	export WORKON_HOME=/data/virtual
	source /usr/local/bin/virtualenvwrapper.sh
	mkvirtualenv -p python3 django
2 xshell下拷贝文件
	rz   win----》linux
	sz   linux---》win

3 django 源码安装
	查看INSTALL文件
	pyton setup.py build(可选)
	python setup.py install
4 创建django项目
	1 创建项目
		django-admin startproject itcast
	2 创建app
		python manage.py startapp
	3 创建页面
		修改views.py----->返回一个httpresponse
	4 注册应用
		修改settings.py文件
	5 url路由
		修改urls.py文件
		
5 pcre动态库安装
	1 查看INSTALL
	2 ./configure
		(检查系统依赖,指定安装路径,裁剪定制软件包)
		make   
			(编译)
		make install
		 (安装)
6 nginx 安装
	1 ./configure --prefix=/data/server/nginx --without-http_gzip_module
		(指定安装路径在/data/server/nginx,裁掉gzip模块)
	2 make && make install
	
	3 若nginx启动报错:找不到动态库
		ldd 查找链接路径
		ln -s 创建软连接
			ln -s /usr/local/lib/libpcre.so.1 /lib/x86_64-linux-gnu/libpcre.so.1
	
7 启动项目
	1 启动django 
		python manage.py runserver > /dev/null 2>&1 &
	
	2 启动nginx
		/data/server/nginx/sbin/nginx

手动代码发布

	2.打包代码(代码服务器执行)
		cd /home/dev/data/codes
		tar zcf tar_code.tar.gz test1/
	3. 传输代码
		cd /data/codes
		scp [email protected]:/home/dev/data/codes/tar_code.tar.gz .
	4. 关闭应用
		cd /data/server/nginx/sbin
		./nginx -s stop
		kill `lsof -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`
		cp /data/codes/test1/views.py .
	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 -ltn | grep 80

简单脚本编写

	1 命令罗列
	2 固定内容变量化(方便修改)
	3 功能函数化(方便扩展)

远程执行命令

	ssh [email protected] "bash /home/dev/data/scripts/tar_code.sh"
	(登陆到代码服务器,执行打包代码的脚本)

大型脚本编写

	1 确定框架
		将功能定义成函数
	2 命令填充
		将之前记录的命令填到函数里
	
3 日志功能
	1 定义写日志函数
		获取时间日期步骤等信息,拼接后重定向到文件
	2 各个步骤调用该函数
	
4 锁文件功能(保证脚本同一时间只执行一次)
	1 创建加锁和解锁函数
		创建和删除锁文件(/tmp/XXXXX)
	2 在所有步骤之前调用加锁函数,所有步骤之后调用解锁函数
	3 部署函数调用之前先判断锁文件是否存在
	
5 功能参数化(方便后续扩展)
	通过case语句,判断参数,若是deploy则执行deploy函数
	安全性参数个数的判断($#)

脚本调试

-n 检查语法错误
-v 先显示脚本内容,然后指向
-x 显示一条执行一条

猜你喜欢

转载自blog.csdn.net/PyTtCcMm/article/details/85706524