文章目录

  • 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部署项目常用命令