“兼职”运维的常用命令
自从产品转到了 dotNET Core 之后,更深入的接触 Linux和 Docker ,而我每天的工作中,有一部分时间相当于在“兼职”做一些运维的事情。下面是一些在日常中常用的命令,算是个备忘吧。
环境
- 操作系统:CentOS7
- Docker:18.05.0-ce
- MySQL: 8
测试环境的服务器部署很简单,一台公网服务器,后面有若干台内网服务器,程序部署在内网服务器,通过公网服务器反向代理进行访问。
场景一:将外网数据库备份到内网进行排错
1 | ssh [email protected] #进入外网服务器 |
场景二:CentOS 防火墙相关
1 | systemctl status firewalld.service #查看防火墙状态 |
场景三:CentOS 系统常用
1 | ls #查看目录文件 |
场景四:CentOS 安装 vsftpd(特定用户访问特定目录)
1、安装vsftpd
1 | yum -y install vsftpd |
2、启动ftp服务
1 | systemctl start vsftpd.service |
3、禁用匿名用户访问,执行vi /etc/vsftpd/vsftpd.conf
,修改配置文件
1 | anonymous_enable=NO |
4、添加用户
1 | useradd -d /home/oec2003 oec2003 #增加用户oec2003,并指定oec2003用户的主目录为/home/oec2003 |
5、修改配置文件 /etc/vsftpd/vsftpd.conf
1 | chroot_local_user=YES |
在/etc/vsftpd/chroot_list
这个配置文件中添加用户,每个用户写在一行,则在这个文件里的用户登录ftp后,可以访问上级目录,而不在这个配置文件中的用户只能访问添加用户时指定的home目录。
场景五:CentOS 服务器之间免密码登录
假设现在有两条服务器 10.10.10.1 和 10.10.10.2 ,现在想在 10.10.10.1 服务器上免密码登录 10.10.10.2 ,步骤如下:
1、在 10.10.10.1 上创建秘钥
1 | ssh-keygen -t rsa -C "[email protected]" |
创建完成后,在 .ssh 的隐藏目录中会有两个文件 id_rsa (私钥)、id_rsa.pub (公钥)文件
2、用 ssh-copy-id 把公钥复制到 10.10.10.2
1 | ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] |
3、修改 10.10.10.2 的配置文件 /etc/ssh/sshd_config
1 | AuthorizedKeysFile .ssh/authorized_keys |
4、重启 sshd 服务
1 | service sshd restart |
场景六:使用 Nginx 代理 MySQL
MySQL 的容器部署在内网服务器,有时我们需要在本地能直接连接 MySQL ,这时就需要使用 Nginx 来做反向代理。
现在在 10.10.10.1 服务器上部署有 MySQL 容器,端口为 3306 ,代理的配置方式如下:
1、在外网服务器的 221.221.221.1 服务器的 root 目录创建配置文件 nginx.conf,内容如下
1 | # 上面部分的内容就是nginx.conf文件的内容,在http节点同级添加stream节点,如下 |
2、创建代理容器
1 | docker run -d -p 33306:33306 --name mysql -v /root/nginx.conf:/etc/nginx/nginx.conf --restart=always nginx:latest |
现在就可以在客户端通过IP 221.221.221.1 和端口 33306 来进行数据库连接了。
场景七:空间清理
服务器运行一段时间后,空间会越来越小,可以通过下面的一些命令来辅助清理空间
Docker
1 | docker system df -v #可用于查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况 |
ContOS 文件
1 | du -sh * | sort -nr #查看当前目录文件大小,有排序 |
MySQL
1 | show binary logs; #查看日志占用 |