“兼职”运维的常用命令
自從產品轉到了 dotNET Core 之后,更深入的接觸 Linux和 Docker ,而我每天的工作中,有一部分時間相當于在“兼職”做一些運維的事情。下面是一些在日常中常用的命令,算是個備忘吧。
環境
操作系統:CentOS7
Docker:18.05.0-ce
MySQL: 8
測試環境的服務器部署很簡單,一臺公網服務器,后面有若干臺內網服務器,程序部署在內網服務器,通過公網服務器反向代理進行訪問。
場景一:將外網數據庫備份到內網進行排錯
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 防火墻相關
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 系統常用
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
yum?-y?install?vsftpd2、啟動ftp服務
systemctl?start?vsftpd.service3、禁用匿名用戶訪問,執行vi /etc/vsftpd/vsftpd.conf,修改配置文件
anonymous_enable=NO4、添加用戶
useradd?-d?/home/oec2003?oec2003?#增加用戶oec2003,并指定oec2003用戶的主目錄為/home/oec2003passwd?oec2003?#為用戶oec2003設置密碼,運行后輸入兩次相同密碼5、修改配置文件 /etc/vsftpd/vsftpd.conf
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 上創建秘鑰
ssh-keygen?-t?rsa?-C?"oec2003@qq.com"創建完成后,在 .ssh 的隱藏目錄中會有兩個文件 id_rsa (私鑰)、id_rsa.pub (公鑰)文件
2、用 ssh-copy-id 把公鑰復制到 10.10.10.2
ssh-copy-id?-i?/root/.ssh/id_rsa.pub?root@10.10.10.23、修改 10.10.10.2 的配置文件 /etc/ssh/sshd_config
AuthorizedKeysFile????.ssh/authorized_keys PubkeyAuthentication?yes?#打開免密碼設置4、重啟 sshd 服務
service?sshd?restart場景六:使用 Nginx 代理 MySQL
MySQL 的容器部署在內網服務器,我們需要在本地能直接連接 MySQL ,這時就需要使用 Nginx 來做反向代理。
現在在 10.10.10.1 服務器上部署有 MySQL 容器,端口為 3306 ,代理的配置方式如下:
1、在外網服務器的 221.221.221.1 服務器的 root 目錄創建配置文件 nginx.conf,內容如下
#?上面部分的內容就是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、創建代理容器
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
docker?system?df?-v?#可用于查詢鏡像(Images)、容器(Containers)和本地卷(Local?Volumes)等空間使用大戶的空間占用情況 docker?system?prune?#自動清理容器ContOS 文件
du?-sh?*?|?sort?-nr?#查看當前目錄文件大小,有排序 du?-s?*?|?sort?-nr?|?head du?-s?*?|?sort?-nr?|?tailMySQL
show?binary?logs;?#查看日志占用 reset?master;?#清理日志總結
以上是生活随笔為你收集整理的“兼职”运维的常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes包管理器Helm发布
- 下一篇: 选择开源项目什么最重要?