文章目录
- linux部署项目常用命令
- 登录远程服务器
- 安装mysql和redis
- linux
- 文件操作
- 目录操作
- 传输文件、文件夹
- 进程管理
- docker 安装与使用
- 安装
- docker使用命令
- uwsgi 命令
- 安装
- 启动、停止和重启
- Nginx命令
- 安装
- 启动、停止和重启
- 卸载
- supervisor管理daphne进程
- 安装
- 进程管理命令
- 迁移数据库
- 注意
linux部署项目常用命令
登录远程服务器
ssh ubuntu@ip
password : 服务器密码
安装mysql和redis
更新源
$ sudo apt-get update
安装mysql
$ sudo apt-get install mysql-server
修改mysql 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
安装redis
$ sudo apt-get install redis-server
linux
文件操作
进入管理员模式
$ sudo su root
创建文件
$ touch 文件名/路径
查看文件
$ cat 文件名/路径
# 查看文件最后几行
$ tail 文件名/路径
# 常用来查看日志
修改文件
$ vim 文件名/路径
$ sudo vim 文件名/路径
复制文件
$ cp 源文件 文件名/路径
$ sudo cp 源文件 文件名/路径
删除文件
$ rm 文件名/路径
$ sudo rm 文件名/路径
软连接
$ ln -s 源文件 目标文件
压缩命令
$ zip filename.zip filename
$ zip [选项] 压缩后的文件名.zip 要压缩的文件/目录
#将srcDir目录下的所有文件都压缩
$ zip -r /usr/tmp/filename.zip 文件或目录
# -r表示递归压缩子目录下所有文件
解压命令
$ unzip filename.zip
$ unzip 要解压的文件.zip
$ unzip -o -d /home/sunny myfile.zip
# 把myfile.zip文件解压到 /home/sunny/
# -o:不提示的情况下覆盖文件
# -d:/home/sunny 指明将文件解压到/home/sunny目录下
目录操作
进入目录
$ cd 目录路径
创建目录
$ mkdir 目录名/路径
修改目录名
$ mv 目录名/路径 新目录名
删除目录
$ rm -rf 目录名/路径
$ sudo rm -rf 目录名/路径
传输文件、文件夹
文件传输
把本机的文件传给目的服务器:
scp req.txt ubuntu@49.232.197.66:./
scp 要传输的文件名/路径 ubuntu@49.232.197.66:服务器目录名/路径
在本机上执行scp,把远端的服务器文件拷贝到本机上:
scp ubuntu@49.232.197.66:./requirements.txt ./
scp ubuntu@49.232.197.66:要拷贝的文件名/路径 本地保存路径
文件夹传输
把本机的文件夹传给目的服务器:
scp -r 目录名/路径 ubuntu@49.232.197.66:服务器目录名/路径
在本机上执行scp,把远端的服务器文件夹拷贝到本机上:
scp -r ubuntu@49.232.197.66:目录名/路径 本机保存路径
进程管理
查看进程
$ ps aux
$ ps -elf
$ top
$ pstree -aup
查看指定进程
$ ps -aux | grep uwsgi
$ ps -aux | grep nginx
杀死进程
$ kill -9 pid
查看端口
$ netstat -apn
查看指定端口
$ netstat -ap | grep 8080
$ netstat -tunlp | grep 3306
docker 安装与使用
安装
# 卸载旧版本
$ sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装包允许apt通过HTTPS使用仓库
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# 添加Docker官方GPG key
$ curl -fsSL https://download.docker/linux/ubuntu/gpg | sudo apt-key add -
# 设置Docker稳定版仓库(国内使用都用用国内的源)
# 设置使用阿里云
$ add-apt-repository "deb [arch=amd64] https://mirrors.aliyun/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 设置使用官方,很慢(不建议用这个)
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 添加仓库后,更新apt源索引
$ sudo apt-get update
# 安装最新版Docker CE(社区版)
$ sudo apt-get install docker-ce
# 检查Docker CE是否安装正确
$ sudo docker run hello-world
docker使用命令
启动docker
$ systemctl start docker
$ sudo systemctl start docker
关闭docker
$ systemctl stop docker
$ sudo systemctl stop docker
重启docker
$ systemctl restart docker
$ sudo systemctl restart docker
查看docker 运行状态
$ systemctl status docker
$ sudo systemctl status docker
查看docker帮助命令
$ docker --help
拉取镜像
$ docker pull 镜像名
$ docker pull 镜像名:tag
# 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
查看自己服务器本地docker 镜像列表
$ docker images
$ sudo docker image ls
$ sudo docker image ls
查看容器
# 查看正在运行的容器
$ docker ps
$ docker container ls
# 查看所有容 包括停止的容器
$ docker ps -a
# 查看容器详细信息
$ docker inspect 容器名
运行容器
$ docker run 容器名
$ docker run 容器名:Tag
# -it 以交互模式运行容器 退出当前命令,容器也随之退出
$ docker run -it 容器名
停止容器
#停止一个运行中的容器
$ docker stop 容器名/容器ID
$ docker container stop 容器名/容器ID
#杀掉一个运行中的容器
$ docker kill 容器名/容器ID
删除容器
# 注意删除容器时,需要先停止容器,确保容器不在运行状态或被引用
$ sudo docker container rm -f 容器id
删除镜像
$ sudo docker image rm 镜像id
uwsgi 命令
安装
$ sudo apt-get install uwsgi
查看版本
$ uwsgi --version
启动、停止和重启
$ uwsgi --ini xxx.ini # 启动
$ uwsgi --stop xxx.pid # 停止
$ uwsgi --reload xxx.pid # 重启
查看uwsgi状态
$ systemctl status uwsgi.service
安装插件
# ubuntu环境
$ sudo apt-get install -y uwsgi-plugin-python3
# centos环境
$ sudo yum install -y uwsgi-plugin-python
然后在uwsgi.ini文件中添加一行
plugin=python3
配置文件.ini
socket=%(chdir)/uwsgi/uwsgi.sock # socket文件,配置nginx时候使用
stats=%(chdir)/uwsgi/uwsgi.status # status文件,可以查看uwsgi的运行状态
pidfile=%(chdir)/uwsgi/uwsgi.pid # pid文件,通过该文件可以控制uwsgi的重启和停止
daemonize=%(chdir)/uwsgi/uwsgi.log # 日志文件,通过该文件查看uwsgi的日志
读取uwsgi实时状态
uwsgi --connect-and-read uwsgi/uwsgi.status
Nginx命令
安装
$ sudo apt-get install nginx
启动、停止和重启
$ service nginx start # 启动
$ service nginx stop # 停止
$ service nginx restart # 重启
# 管理员权限
$ sudo service nginx start # 启动
$ sudo service nginx stop # 停止
$ sudo service nginx restart # 重启
查看nginx配置文件是否正确
$ sudo nginx -t
查看nginx状态
$ systemctl status nginx.service
卸载
注意点:首先需要停止nginx的服务
$ sudo service nginx stop
删除nginx,–purge包括配置文件
$ sudo apt-get --purge remove nginx
自动移除全部不使用的软件包
$ sudo apt-get autoremove
列出与nginx相关的软件 并删除显示的软件
$ dpkg --get-selections|grep nginx
$ sudo apt-get --purge remove nginx
$ sudo apt-get --purge remove nginx-common
$ sudo apt-get --purge remove nginx-core
再次执行
$ dpkg --get-selections|grep nginx
$ which nginx # 不在显示nginx
supervisor管理daphne进程
安装
$ sudo apt install supervisor
测试运行
$ daphne -b 127.0.0.1 -p 8013 demo.asgi:application
$ daphne -b ip -p 端口 主应用.asgi:application
生成配置文件
$ echo_supervisord_conf > ./supervisord.conf
进程管理命令
# 启动supervisorc
$ supervisord -c ./supervisor.conf
# 查看supervisor
$ ps -fe | grep supervisord
# 查看supervisor当前管理的所有进程的状态
$ supervisorctl status
# 启动进程
$ supervisorctl start demo #启动单个进程
$ supervisorctl start all #启动所有进程
# 停止进程
$ supervisorctl stop usercenter
$ supervisorctl stop all
# 重启进程
$ supervisorctl restart usercenter #或者使用supervisorctl reload: 重启
$ supervisorctl restart all
# 读取有更新(增加)的配置文件,不会启动新添加的程序
$ supervisorctl reread
# 将配置文件里新增的子进程加入进程组,如果设置了autostart=true则会启动新新增的子进程
$ supervisorctl update
迁移数据库
导出数据库数据
$ mysqldump -u root -p private_web > demo.sql
$ mysql -u root -p 数据库 > 文件名.sql
导入数据
$ mysql -u root -p private_web < demo.sql
$ mysql -u root -p 数据库 < 文件名.sql
注意
命令前加 sudo 是获取管理员权限执行。
更多推荐
linux部署项目常用命令
发布评论