前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“兼职”运维的常用命令

“兼职”运维的常用命令

作者头像
oec2003
发布2019-11-18 20:04:45
8480
发布2019-11-18 20:04:45
举报
文章被收录于专栏:不止dotNET不止dotNET

自从产品转到了 dotNET Core 之后,更深入的接触 Linux和 Docker ,而我每天的工作中,有一部分时间相当于在“兼职”做一些运维的事情。下面是一些在日常中常用的命令,算是个备忘吧。

环境

  • 操作系统:CentOS7
  • Docker:18.05.0-ce
  • MySQL: 8

测试环境的服务器部署很简单,一台公网服务器,后面有若干台内网服务器,程序部署在内网服务器,通过公网服务器反向代理进行访问。

场景一:将外网数据库备份到内网进行排错

代码语言:javascript
复制
ssh root@221.221.221.1 #进入外网服务器
ssh root@10.10.10.1 #进入内网服务器
docker exec -it mysql容器id bash #进入mysql容器
mysqldump -uroot -pPassword -R dbname > db.sql #备份数据库
exit #退出容器
docker cp mysql容器id:/db.sql /root/  #将备份文件从容器拷贝到虚拟机的root目录
exit #从内网服务器退出到外网服务器
scp root@10.10.10.1:/root/db.sql /root/  #将备份文件从内网拷贝到外网服务器的root目录

ssh root@192.168.16.110 # 进入内网服务器
scp root@221.221.221.1:/root/db.sql /root/ #将外网服务器的备份文件拷贝到内网服务器
docker cp db.sql mysql容器id:/ #将备份文件拷贝到mysql容器内
docker exec -it mysql容器id bash #进入mysql容器内
mysql -uroot -pPassword dbname < db.sql #还原数据库
exit #退出容器

场景二:CentOS 防火墙相关

代码语言:javascript
复制
systemctl status firewalld.service #查看防火墙状态
systemctl start firewalld.service #启用防火墙
systemctl stop firewalld #停用防火墙
systemctl disable firewalld #开机禁用
systemctl enable firewalld #开机启用

firewall-cmd --permanent --list-port #查看已开放端口列表

firewall-cmd --zone=public --add-port=80/tcp --permanent #开放80端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent #关闭80端口

firewall-cmd --reload #重新状态防火墙

场景三:CentOS 系统常用

代码语言:javascript
复制
ls #查看目录文件
cp app.json /root/app # 赋值文件app.jsond到app目录
cp -r  #赋值目录
vi #编辑文件
chmod 777 /root/app.json #设置文件权限
top  #查看cup 内存
df -h  #查看硬盘
du -sh *  #查看当前目录文件大小的详细列表
systemctl restart network #重启网络
rm #删除文件

场景四:CentOS 安装 vsftpd(特定用户访问特定目录)

1、安装vsftpd

代码语言:javascript
复制
yum -y install vsftpd

2、启动ftp服务

代码语言:javascript
复制
systemctl start vsftpd.service

3、禁用匿名用户访问,执行vi /etc/vsftpd/vsftpd.conf,修改配置文件

代码语言:javascript
复制
anonymous_enable=NO

4、添加用户

代码语言:javascript
复制
useradd -d /home/oec2003 oec2003 #增加用户oec2003,并指定oec2003用户的主目录为/home/oec2003

passwd oec2003 #为用户oec2003设置密码,运行后输入两次相同密码

5、修改配置文件 /etc/vsftpd/vsftpd.conf

代码语言:javascript
复制
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list这个配置文件中添加用户,每个用户写在一行,则在这个文件里的用户登录ftp后,可以访问上级目录,而不在这个配置文件中的用户只能访问添加用户时指定的目录。

场景五:CentOS 服务器之间免密码登录

现在有两台服务器 10.10.10.1 和 10.10.10.2 ,现在想在 10.10.10.1 服务器上免密码登录 10.10.10.2 ,步骤如下:

1、在 10.10.10.1 上创建秘钥

代码语言:javascript
复制
ssh-keygen -t rsa -C "oec2003@qq.com"

创建完成后,在 .ssh 的隐藏目录中会有两个文件 id_rsa (私钥)、id_rsa.pub (公钥)文件

2、用 ssh-copy-id 把公钥复制到 10.10.10.2

代码语言:javascript
复制
ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.10.10.2

3、修改 10.10.10.2 的配置文件 /etc/ssh/sshd_config

代码语言:javascript
复制
AuthorizedKeysFile    .ssh/authorized_keys
PubkeyAuthentication yes #打开免密码设置

4、重启 sshd 服务

代码语言:javascript
复制
service sshd restart

场景六:使用 Nginx 代理 MySQL

MySQL 的容器部署在内网服务器,我们需要在本地能直接连接 MySQL ,这时就需要使用 Nginx 来做反向代理。

现在在 10.10.10.1 服务器上部署有 MySQL 容器,端口为 3306 ,代理的配置方式如下:

1、在外网服务器的 221.221.221.1 服务器的 root 目录创建配置文件 nginx.conf,内容如下

代码语言:javascript
复制
# 上面部分的内容就是nginx.conf文件的内容,在http节点同级添加stream节点,如下
...
stream {
    upstream mysql {
        hash $remote_addr consistent;
        server 10.10.10.1:3306 max_fails=3 fail_timeout=30s;
    }
    server {
        listen 33306;
        proxy_connect_timeout 30s;
        proxy_timeout 600s;
        proxy_pass mysql;
    }
}

2、创建代理容器

代码语言:javascript
复制
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

代码语言:javascript
复制
docker system df -v #可用于查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况
docker system prune #自动清理容器

ContOS 文件

代码语言:javascript
复制
du -sh * | sort -nr #查看当前目录文件大小,有排序
du -s * | sort -nr | head
du -s * | sort -nr | tail

MySQL

代码语言:javascript
复制
show binary logs; #查看日志占用
reset master; #清理日志
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止dotNET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 场景一:将外网数据库备份到内网进行排错
  • 场景二:CentOS 防火墙相关
  • 场景三:CentOS 系统常用
  • 场景四:CentOS 安装 vsftpd(特定用户访问特定目录)
  • 场景五:CentOS 服务器之间免密码登录
  • 场景六:使用 Nginx 代理 MySQL
  • 场景七:空间清理
    • Docker
      • ContOS 文件
        • MySQL
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档