场景一:系统基础运维案例
系统整体状态查看:top/htop
系统进程状态查看:ps/bashtop
系统内存状态查看:vmstat/smem --smem 查看每个进程占用的内存 smem -k -r uss
系统磁盘IO状态查看:iotop/iostat
buffer:缓冲:数据先写入内存,再往磁盘上去刷
cache:缓存:数据先写入内存,再读取的时候速度会很快
场景二:线上产品升级案例
操作:(复制-替换-覆盖)传代码到服务器,解压代码,备份目录,创建目录,将代码拷贝到某目录,创建软链接,查看readme.txt文件,修改代码目录权限与用户,修改配置文件,启动start.sh,完成升级
打包、压缩解压命令:tar 解包命令组合:tar zxvf/jxvf
压缩命令组合:tar zcvf/jcvf
创建软链接命令:ln ln -s
拷贝文件、目录命令:cp cp -r
文本编辑器命令:vi
文件授权命令:chown -R chmod -R
创建目录命令:mkdir
场景三:线上服务器磁盘扩容案例
查看目前磁盘空间:df du df -h du -sh * | sort -h 磁盘分区划分方法:fdisk/parted fdisk -l 查看磁盘使用状态 parted /dev/sda 对sda磁盘进行分区 磁盘挂载、卸载方法:mount/umount ----fuser /lvmname 查看某进程占用lvmname磁盘的进程
场景四:磁盘故障导致系统无法启动案例
磁盘分区所在文件系统不一致 磁盘硬件故障,例如扇区损坏,物理故障无法修复,只能考虑换硬盘 通过dmesg命令查看输出 通过fsck修复文件系统故障 执行fsck /dev/sda7 提示你用xfs_repair修复,再次执行xfs_repair /dev/sda7修复/dev/sda7分区 fsck -y 修复磁盘时会删除无法识别的数据,-y就是同意删除无法识别的数据
场景五:海量数据异地备份并保证数据完整性案例
常用海量数据同步方案 通过scp、rsync实现数据同步 通过rsync+inotify实现数据同步 通过EFLK实现数据实时同步 rsync实例 服务端 yum install rsync ----安装rsync软件 more /etc/rsyncd.conf ----查看rsync配置 rsync --darmon ----启动rsync,并让其在后台运行 ps -ef|grep rsync ----查看进程,有进程存在,则rsync服务端构建完成 客户端 yun install rsync rsync -vzrtopg --delete --progress backup@ip_addr::ixdba /mnt --password-file=/etc/server.pass -vzrtopg:保证可以从服务端将数据完整的传输过来 –delete:服务端没有,客户端有的数据进行删除 –progress:保证数据权限不会变 backup@ip_addr:数据来源 ::ixdba:服务端/etc/rsyncd.conf文件中写的名字 /mnt:客户端接收传输过来文件的存放位置 –password-file=/etc/server.pass:密码文件存放位置 /etc/server.pass:服务端要存在这个文件,里面存放客户端用户密码,格式为:userid:pass 客户端也要有这个文件,里面只用存放用户密码就好 server.pass文件权限为600,否则执行会有问题 客户端运行rsync是增量接收,每次要同步数据时需要手动执行上面的命令,rsync同步为触发同步 rsync客户端-客户端传输数据,用法与scp一样,将scp换成rsync传输数据即可
场景六:线上代码自动备份并异地存储案例
如何实现定时备份:crontab 如何将备份传输到异地主机:rsync 如何编写这个脚本: #!/bin/sh BAKDATE=‘date +%y%m%d’ systemctl stop nginx ----关闭nginx服务 cd app tar -zxvf /app/data/data.tar.gz backdata ----打包backdata文件 systemctl start nginx ----开启nginx服务 echo “tar ok” rsync -vzrtopg /app/data/data.tar.gz root@ip_addr:/app/backup ----利用rsync传输压缩文件,rsync支持增量传输 echo “Backup app complete!” 注意:正常传输的时候是需要密码认证的,没有将公钥传输过去之前需要进行密码认证,所以应该先将公钥传输到目标端上 公钥是:/root/.ssh/id_rsa.pub scp /root/.ssh/id_rsa.pub root@ip_addr:/root/.ssh 传输过去之后需要将目标端上的认证文件覆盖 cat id_rsa.pub > authorized_keys 覆盖之后才可以实现无密码登录 crontab定时任务 系统任务调度:/etc/crontab 用户任务调度:crontab -u crontab -e crontab -l crontab格式:分时日月周 / 表示时间间隔
|