视频学习记录和规划day10

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视频学习记录和规划day10相关的知识,希望对你有一定的参考价值。

规划:
[X] 2017-5-8 周一 第一章 2h 环境准备
[ ] 2017-5-9 周二 第二章 2-3h  RSYNC项目实践
[ ] 2017-5-10 周三 第三章  >2h NFS共享存储项目实践
[ ] 2017-5-11 周四 第四章  <2h 全网备份项目实践  (和51cto的会员课程相同)
[ ] 2017-5-12 周五   总结 考核自己


学习笔记:
2017-5-8 20:30-
1、形象集群机构图:


2、服务器规划:

3、主机IP规划表:

4、host解析:       /etc/hosts




2017-5-9 19:37-
基础优化:
1、永久关闭selinux

sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#‘ /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce

临时关闭selinux
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
Permissive

2、关闭iptables

/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off

3、精简开机自启动服务

chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk ‘{print "chkconfig",$1,"off"}‘|bash

验证效果:

4、提权oldboy可以sudo
useradd oldboy
\cp /etc/sudoers /etc/sudoers.bak
echo "oldboy ALL=(ALL) NOPASSWD:ALL" >>/etc/sudoers
tail -l /etc/sudoers;
visudo -c

5、中文字符集
cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak
echo ‘LANG="zh_CN.UTF-8"‘ >/etc/sysconfig/il8n
source /etc/sysconfig/il8n
echo $LANG

6、时间同步
echo ‘#time sync by 20has at 2017-5-9‘ >>/var/spool/cron/root
echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘ >>/var/spool/cron/root
crontab -l

7、命令行安全
echo ‘export TMOUT=300‘ >>/etc/profile
echo ‘export HISTSIZE=5‘  >>/etc/profile
echo ‘export HISTFILESIZE=5‘ >>/etc/profile
tail -3 /etc/profile
. /etc/profile

8、加大文件描述
echo ‘*                -       nofile          65535‘>>/etc/security/limits.conf
tail -l /etc/security/limits.conf


9、内核优化
.......需要自己添加

李导QQ群分享:


2017-5-10 21:48-
RSYNC搭建:

企业场景:

三种使用方式:


使用-e参数选择ssh通道  通过ssh key免密码授权同步文件

1、修改配置文件  /etc/rsyncd.conf
[[email protected] ~]# vim /etc/rsyncd.conf

  1 #rsync_config________________________start
  2 #create by 20has at 2017-5-10
  3 uid = rsync   #用户(远端的命令要使用rsync访问共享目录)
  4 gid = rsync   #用户组
  5 use chroot = no   #安全相关
  6 max connections = 200  #最大连接数
  7 timeout = 300 #超时时间
  8 pid file = /var/run/rsyncd.pid  #进程对应的进程号文件
  9 lock file = /var/run/rsync.lock #锁文件(例如上厕所需要关门)
 10 log file = /var/log/rsyncd.log  #日志文件 出错信息等
 11 [backup]  #模块名称
 12 path = /backup    #服务器提供访问的目录
 13 ignore errors     #忽略错误
 14 read only =false  #可写
 15 list = false      #不能列表
 16 #hosts allow = 172.16.0.0/24 #允许访问的机器
 17 #hosts deny = 0.0.0.0/32     #不允许访问的机器  谁都可以
 18 auth users = rsync_backup  #虚拟用户 独立于系统外的虚拟用户
 19 secrets file = /etc/rsync.password #虚拟用户里面对应的用户和密码
 20 #rsync_config________________________end

#rsync_config________________________start
#create by 20has at 2017-5-10
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only =false
list = false
hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup

#rsync_config________________________end




[[email protected] ~]# useradd rsync -s /sbin/nologin -M
[[email protected] ~]# tail -1 /etc/passwd
rsync:x:501:501::/home/rsync:/sbin/nologin
[[email protected] ~]# rsync --daemon                                     #以服务形式启动
[[email protected] ~]# ps -ef |grep rsync |grep -v grep             #排除自己的查询
root      1477     1  0 23:16 ?        00:00:00 rsync --daemon
[[email protected] ~]# mkdir /backup
[[email protected] ~]# chown rsync.rsync /backup
[[email protected] ~]# ll -d /backup
drwxr-xr-x 2 rsync rsync 4096 2017-05-10 23:17 /backup
[[email protected] ~]# vim /etc/rsync.password
[[email protected] ~]# cat /etc/rsync.password
rsync_backup:oldboy                      #用于客户端rsync使用的帐号和密码 明文保存 得设置文件权限
[[email protected] ~]# ls -l /etc/rsync.password
-rw-r--r-- 1 root root 20 5月  10 23:33 /etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 5月  10 23:33 /etc/rsync.password
[[email protected] ~]# lsof -i :873  #已知端口号,查看进程和服务方法一
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1477 root    3u  IPv4  10772      0t0  TCP *:rsync (LISTEN)
rsync   1477 root    5u  IPv6  10773      0t0  TCP *:rsync (LISTEN)
[[email protected] ~]# netstat -lntup |grep 873    #已知端口号,查看进程和服务方法二
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1477/rsync         
tcp        0      0 :::873                      :::*                        LISTEN      1477/rsync   
小结:


[[email protected] ~]# rsync -avz /tmp/ [email protected]::backup/ --password-file=/etc/rsync.password
@ERROR: auth failed on module backup  #第一次测试失败
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
第一次检查发现是 path=/backp  (缺少个u      应该是/backup)
[[email protected] ~]# rsync -avz /tmp/ [email protected]::backup --password-file=/etc/rsync.password
@ERROR: Unknown module ‘backup‘ #第二次测试失败
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
查看日志/var/log/rsyncd.log    发现是rsync denied   注释掉#host allow和host deny后成功
应该是配置文件的网段限制不对
参考资料:http://www.cnblogs.com/wang-xd/p/6551402.html
同时检查了公司的  CWRSYNC  +计划任务  运行完好!

cp a.txt{,.bak}    ==>cp a.txt a.txt.back    备份文件

--delet-after 延迟删除      receiver deletes after transfer, not before
--delete-before 提前删除   receiver deletes before transfer (default)

排除同步:  --exclud={a..f}   排除连续的a到f文件
[[email protected] ~]# rsync -avz --exclude={a..f} [email protected]::backup/ /root/ --password-file=/etc/rsync.password                  #客户端拉取

无差异同步:
[[email protected] ~]# rsync -avz --delete [email protected]::backup/ /root/ --password-file=/etc/rsync.password          #以[email protected]::backup/ 为标准

小结:
rsync三种工作模式:
1、local: rsync(cp,rm)
2、通道模式
rsync -avzP -e ‘ssh -p 22’ /etc [email protected]:/tmp
一般配合ssh key免密钥传输,结合定时任务
3、daemon模式
内网不需要加密,加密会有性能损失
外网走vpn(pptp,openvpn,ipsec)

限速:
[[email protected] ~]# rsync -avz /root/ [email protected]::backup/  --password-file=/etc/rsync.password --bwlimit=30
--bwlimit=KBPS          limit I/O bandwidth; KBytes per second




51cto会员课程:http://edu.51cto.com/course/course_id-3497.html  
cd / && tar -zcvf  $(date +%F)  需要打包的目录                              #以日期为名称打包文件
校验是否发生改变:






yum -y install lrzsz nmap tree dos2unix nc

[[email protected] ~]# /etc/init.d/rpcbind start  #先启动rpc服务
正在启动 rpcbind:                                         [确定]
netstat -lntup |grep rpc                   #检查是否启动
lsof -i :111                               #检查是否启动
[[email protected] ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
[[email protected] ~]# /etc/init.d/nfs start      #后启动nfs服务
启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[[email protected] ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  43241  mountd
    100005    1   tcp  45669  mountd
    100005    2   udp  38978  mountd
    100005    2   tcp  42563  mountd
    100005    3   udp  44893  mountd
    100005    3   tcp  50046  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  49681  nlockmgr
    100021    3   udp  49681  nlockmgr
    100021    4   udp  49681  nlockmgr
    100021    1   tcp  51493  nlockmgr
    100021    3   tcp  51493  nlockmgr
    100021    4   tcp  51493  nlockmgr


服务端:
[[email protected] ~]# vi /etc/exports
#share /data by 20has for oldboy at 20170512
/data 10.0.0.0/24(rw,sync)

/etc/init.d/rpcbind start  #先启动rpc服务
netstat -lntup |grep rpc                   #检查是否启动
/etc/init.d/nfs start      #后启动nfs服务
rpcinfo -p localhost     #查看rpc端口     看中介是否已经拿到房源

[[email protected] ~]# /etc/init.d/nfs start
启动 NFS 服务:                                            [确定]
启动 NFS mountd:                                          [确定]
启动 NFS 守护进程:                                        [确定]
正在启动 RPC idmapd:                                      [确定]
[[email protected] ~]# /etc/init.d/nfs reload        #最好的启动方式是reload   平滑启动   
例如银行放号: (6点下班)已取号的继续服务   5点不再开始放号   全部服务完工再重启服务

[[email protected] ~]# showmount -e 10.0.0.31           #检查是否配置好服务端
Export list for 10.0.0.31:
/data 10.0.0.0/24

客户端:
yum install nfs-utils rpcbind -y
[[email protected] ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.2.3-75.el6.x86_64
rpcbind-0.2.0-13.el6.x86_64
[[email protected] ~]# /etc/init.d/rpcbind start
正在启动 rpcbind:                                         [确定]
[[email protected] ~]# /etc/init.d/rpcbind status
rpcbind (pid  1512) 正在运行...
[[email protected] ~]# chkconfig rpcbind on       #开机自启动
[[email protected] ~]# chkconfig --list rpcbind
rpcbind            0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

[[email protected] ~]# showmount -e 10.0.0.31                     #测试能不能挂载
Export list for 10.0.0.31:
/data 10.0.0.0/24
[[email protected] ~]# mount -t nfs 10.0.0.31:/data /mnt      #挂载
[[email protected] ~]# df -h                                                  #查看挂载情况(如果不通网络可能会卡住)
Filesystem       Size  Used Avail Use% Mounted on
/dev/sda3         19G  832M   17G   5% /
tmpfs            495M     0  495M   0% /dev/shm
/dev/sda1        190M   27M  154M  15% /boot
10.0.0.31:/data   19G  960M   17G   6% /mnt
[[email protected] ~]# cat /proc/mounts                          #监控挂载情况(监控这个比较好!)
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=495304k,nr_inodes=123826,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/sda3 / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
10.0.0.31:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.8,minorversion=0,local_lock=none,addr=10.0.0.31 0 0

关于客户端安装nfs-utils包的问题:


小结:rpc必须先于nfs启动     ll /etc/rc.d/rc3.d/ 就能看出来  
客户端:





echo "mount -t nfs 10.0.0.31:/data /mnt" >>/etc/rc.local   #写入开机自动挂载nfs





服务端:
[[email protected] data]# useradd -u 888 zuma -s /sbin/nologin -M
[[email protected] data]# mkdir /data1 -p
[[email protected] data]# chown -R zuma.zuma /data1
[[email protected] data]# /etc/init.d/nfs reload

客户端:
[[email protected] mnt]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data1 10.0.0.0/24
/data  10.0.0.0/24
[[email protected] mnt]# mount -t nfs 10.0.0.31:/data1 /opt
[[email protected] mnt]# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3          19G  832M   17G   5% /
tmpfs             495M     0  495M   0% /dev/shm
/dev/sda1         190M   27M  154M  15% /boot
10.0.0.31:/data    19G  960M   17G   6% /mnt
10.0.0.31:/data1   19G  960M   17G   6% /opt                #成功!
[[email protected]web01 opt]# useradd -u 888 zuma -s /sbin/nologin -M


vim /etc/fstab     最后的那个如果是0就能reboot自动挂载nfs了
[[email protected] ~]# chkconfig --list netfs        
#原因在这里,因为它才能在fstab网卡都没有加载,开机后自动挂载nfs了
netfs              0:关闭    1:关闭    2:关闭    3:启用    4:启用    5:启用    6:关闭



第4章居然就是51cto的会员课程。。。。。。。。。。。。。。。。。。。。。。。。。。我勒个去!

老男孩第4章 全网备份项目:
20has实际操作:
web01:
echo "oldboy" >/etc/rsync.password
vim /var/scripts/bak.sh
#!/bin/sh
##################bak /var/www/html by 20has at 20170514
cd / && \
/bin/tar -zcf backup/`date +%F`.tar.gz var/www/html
####create filags   to md5sum
/usr/bin/md5sum /backup/`date +%F`.tar.gz >/backup/flag.txt
/bin/rm -f `/bin/find /backup -type f -name "*.tar.gz" -mtime +7`
rsync -az /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

改进后的脚本:
#!/bin/sh
##################bak /var/www/html by 20has at 20170514
IP=$(ifconfig eth0 |awk -F "[ :]+" ‘NR==2{print $4}‘)
Time=$(date +%F)
mkdir -p /backup/$IP                         #方便统计来自哪台机器的备份
cd / && \
/bin/tar -zcf backup/$IP/$Time.tar.gz var/www/html var/spool/cron etc/rc.local etc/sysconfig/iptables
####create flag.txt to md5sum
/usr/bin/md5sum /backup/$IP/$Time.tar.gz >/backup/$IP/flag.txt
/bin/rm -f `/bin/find /backup -type f -name "*.tar.gz" -mtime +7`
rsync -az /backup/ [email protected]::backup/ --password-file=/etc/rsync.password


老男孩老师的脚本:
#!/bin/sh
##################bak /var/www/html by 20has at 20170514
IP=$(ifconfig eth0 |awk -F "[ :]+" ‘NR==2{print $4}‘)
if [ $(date +%w) -eq 6 ]                   #判断是否是周六
then
        Time=$(date +%F_%W)
else
        Time=$(date +%F)
fi
mkdir -p /backup/$IP
cd / && \
/bin/tar -zcf backup/$IP/$Time.tar.gz var/www/html var/spool/cron etc/rc.local etc/sysconfig/iptables
####create flag.txt to md5sum
/usr/bin/md5sum /backup/$IP/$Time.tar.gz >/backup/$IP/flag.txt
/bin/rm -f `/bin/find /backup -type f -name "*.tar.gz" -mtime +7`
rsync -az /backup/ [email protected]::backup/ --password-file=/etc/rsync.password



backup:
mkdir /backup
chown rsync.rsync /backup
rm -f `find /backup -type f -name "*.tar.gz" -mtime +180`


改进的脚本:
[[email protected] scripts]# vim check.sh
#!/bin/sh
#################check /backup by 20has at 20170514
/bin/find /backup -type f -name "*.tar.gz" -and ! -name "$date +%F_%W" -mtime +180|xargs /bin/rm -f
/usr/bin/md5sum -c /backup/10.0.0.8/flag.txt >>/backup/10.0.0.8/result.txt
mail -s "$(date +%F) bak result " [email protected] </backup/10.0.0.8/result.txt


生产实验数据:












以上是关于视频学习记录和规划day10的主要内容,如果未能解决你的问题,请参考以下文章

视频学习记录和规划day12

视频学习记录day04

视频学习记录day09

视频学习记录day03

视频学习记录day13

视频学习记录day02