Linux运维场景模拟

场景一:系统基础运维案例

系统整体状态查看: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格式:分时日月周
/ 表示时间间隔

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值