运维笔记--rsync--NFS

配置过程

1,安装rsync使用yum即可。

2,添加rsync服务的用户,管理本地目录的。

useradd -s /sbin/nologin -M rsync 添加用户 不登录不创建家目录。

id rsync

3,生成/etc/rsyncd.conf centos7 安装的时候选择网页服务器貌似会自带这个文件

4,根据rsyncd.conf 的 auth users配置账户,远程连接的。

并根据secrets file参数生成密码文件 这个虚拟密吗的格式为   用户名:密码

echo “rsync_backup:oldboy”  >/etc/rsync.password

cat /etc/rsync.password

5,为密码文件配置权限

chmod 600 /etc/rsync.password

ls -l /etc/rsync.password

6,创建共享的目录并授权rsync服务管理

mkdir /backup

chown -R rsync.rsync /backup

7,启动rsync服务并检查

rsync --daemon

ps -ef|grep rsync|grep -v grep

lsof -i:873 根据监听的端口查看进程。

8,加入开机自启动  

echo "/usr/bin/rsync --daemon" >>/etc/rc.local

tail -l /etc/rc.local

9,排错

tail /var/log/rsyncd.log

下面是配置文件具体内容,注意模块中的公共项可以抽取到上面 如uid gid  如果是多模块理想情况就是 定义一个模块然后 模块下面只有path一个选项。

[root@oldboy ~]# cat /etc/rsyncd.conf 
#rsync_config_____________________________start
#created by oldboy 15:01 2007-6-5
##rsyncd.conf start##
uid = rsync   ##进程对应的用户,是虚拟用户。远端的命令使用rsync访问共享目录
gid = rsync   ##进程对应的用户组。
use chroot = no    ##安全相关
max connections = 200      ##最大连接数
timeout = 300    ##超时时间
pid file = /var/run/rsyncd.pid      ##进程对应的进程号文件
lock file = /var/run/rsyncd.lock     ##锁文件
log file = /var/log/rsyncd.log        ##日志文件
[backup]     ###模块名称
path = /backup      ###服务器提供访问的目录
ignore errors       ##忽略错误
read only = false    ##可写
list = false      ##不能列表
hosts allow = 172.16.1.0/24  ##允许的ip地址
##hosts deny = 0.0.0.0/32
auth users = rsync_backup     ##虚拟用户
secrets file = /etc/rsync.password    ###虚拟密码
fake super = yes
#rsync_config________________________end

配置客户端并测试

1,echo "oldboy" > /etc/rsync.password

2,配置用户权限保证安全

chmod 600 /etc/rsync.password

3,创建本机备份目录,定时从本目录push到远程backup机器

mkdir -p /backup

进行测试

1,touch  stu{01..100}    创建文件

2,  rsync -avz /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

这里的backup/ 代表的是模块目录。所以可以推到 backup/abc 中 只要 abc目录被 rsync用户所管理。

rsync_backup是 auth users  ::backup  这里是模块的名字,

或者 rsync -avz /backup/ rsync://[email protected]/backup/ --password-file=/etc/rsync.password

这里注意:配置文件中最好不要有注释。rsync读取配置的程序很2b的。

推送时排除--exclude 无差异同步 --delete  注意:无差异同步推送时会以客户端文件为标准,会在服务端

删除掉不同于客户端的文件。

优缺点

--------------------------------------------------------------------NFS-----------------------------------------------------------------------   

安装

yum -y install nfs-utils rpcbind

设置开机启动

systemctl enable rpcbind

systemctl enable nfs

centos7下搭建NFS服务器

NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

nfs为什么需要RPC?
因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。
端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。
NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,
并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

本次实践的服务端IP为192.168.186.130    客户端IP为192.168.186.131

一、NFS服务安装配置

nfs-utils、rpcbind

#   yum install nfs-utils rpcbind

二、启动rpcbind服务

#  systemctl restart rpcbind.service

查看服务状态  

# systemctl status rpcbind.service

查看rpc

#   lsof -i :111
#   netstat -lntup|grep rpcbind

如果出现-bash未找到命令可执行下面命令

#  yum install net-tools lsof

查看nfs服务向rpc注册的端口信息

#   rpcinfo -p localhost

检查rpcbind是否开机启动

#   chkconfig --list rpcbind

三、启动NFS服务

#    systemctl start nfs.service

查看状态

#   systemctl status nfs.service

再次查看rpc注册的端口信息

#   rpcinfo -p localhost

四、NFS常见进程详解

#  ps -ef|egrep "rpc|nfs"

复制代码

rpc       13166      1  0 09:01 ?        00:00:00 ./rpcbind
root      13202      2  0 09:02 ?        00:00:00 [rpciod/0]
root      13210      1  0 09:02 ?        00:00:00 rpc.rquotad
root      13214      1  0 09:02 ?        00:00:00 rpc.mountd
root      13220      2  0 09:02 ?        00:00:00 [nfsd4]
root      13221      2  0 09:02 ?        00:00:00 [nfsd4_callbacks]
root      13222      2  0 09:02 ?        00:00:00 [nfsd]
root      13223      2  0 09:02 ?        00:00:00 [nfsd]
root      13224      2  0 09:02 ?        00:00:00 [nfsd]
root      13225      2  0 09:02 ?        00:00:00 [nfsd]
root      13226      2  0 09:02 ?        00:00:00 [nfsd]
root      13227      2  0 09:02 ?        00:00:00 [nfsd]
root      13228      2  0 09:02 ?        00:00:00 [nfsd]
root      13229      2  0 09:02 ?        00:00:00 [nfsd]
root      13252      1  0 09:02 ?        00:00:00 rpc.idmapd

复制代码

nfsd(rpc.nfsd)主进程,主要是管理客户端能否登入服务端,登入者ID判别。
mountd(rpc.mountd)管理NFS文件系统,登入者的权限管理
rpc.lockd(非必要)用来锁定文件,用于客户端同时写入
rpc.statd(非必要)检查文件一致性
rpc.idmapd 名字映射后台进程

五、配置NFS开机自启动

# chkconfig rpcbind on
# chkconfig nfs on
# chkconfig --list rpcbind
# chkconfig --list nfs

六、NFS服务端配置

#   vi /etc/exports

exports文件配置格式:

FS共享的目录 NFS客户端地址1(参数1,参数2,...) 客户端地址2(参数1,参数2,...)

NFS客户端地址:

指定IP: 192.168.0.1
指定子网所有主机: 192.168.0.0/24
指定域名的主机: test.com
指定域名所有主机: *.test.com
所有主机: *

参数:

复制代码

ro:目录只读
rw:目录读写
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

复制代码

例如:

# /data/tmp 192.168.186.131(rw,sync,all_squash)

在服务端创建需要共享的目录

# mkdir -p /data/tmp
# chown nfsnobody.nfsnobody /data/tmp

重新加载nfs配置

#  exportfs -rv

查看nfs服务器挂载情况

#  showmount -e localhost

七、挂载测试

在客户端创建目录

# mkdir -p /data/tmp2
# mount -t nfs 192.168.186.130:/data/tmp /data/tmp2

查看挂载

# df -h

在服务端tmp下创建文件

# touch /data/tmp/1.txt

查看客户端tmp2下是否有文件

# ls /data/tmp2

卸载挂载

# umount /data/tmp2

可以设置开机挂载命令放在rc.local里面即可。

                                    https://blog.csdn.net/zisefeizhu/article/details/79586197 这是下面的原文链接。

                        大规模集群全网备份

                                                                                                    --案例及分析

要求:

企业案例:rsync上机实战考试题
 
某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份,要求如下:
 
每天晚上00点整在Web服务器A上做打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留(备份思路可以是先在本地按日期打包,然后推送到备份服务器上)。
 
具体要求如下:
 
1. 需要备份的文件或目录有(原则上,只要运维人员写入或更改的数据,都需要备份):
 
/var/spool/cron/root  /etc/rc.local  /etc/sysconfig/iptables  /var/www/heml   /app/logs
 
2. 为了规范化,每台web服务器进行本地备份时都备份到/backup目录下
 
3. 每台web服务器进行本地备份时,都备份到/backup下以本地IP地址命名的目录中
 
4. 打的tarball文件名需要包含执行当天的日期
 
5. 统一存储备份数据的服务器通过rsync daemon 方式提供存储备份数据的目录/bakcup
 
6. 由于web服务器本地的存储空间有限,需要将超过7天的备份数据删除
 
7. 为了方便的知道每次备份是否成功,我们需要做如下操作:
 
在每台web服务器上检查备份是否成功
 
在存储备份数据的服务器上检查备份数据是否推送成功,并发送邮件至管理员邮箱
 
8. 由于备份服务器空间有限,需要删除超过180天的备份数据,但每周六的备份数据需要永久保留
解答:

几个里程碑
1.在rsync服务器上,配置rsync服务,实现推送
服务端成功配置rsync,并在客户端成功推送。
2.在客户端nfs服务器上,实现打包,推送,删除,定时任务推送。
3.在rsync备份服务器上,做检查,发邮件给管理员
里程碑1:

服务端:

[root@backup ~]# ifconfig eth0  
 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F7:EC:E5  
 
          inet addr:10.0.0.41  Bcast:10.0.0.255  Mask:255.255.255.0
 
          inet6 addr: fe80::20c:29ff:fef7:ece5/64 Scope:Link
 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
          RX packets:1150 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:993 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:1000
 
          RX bytes:134810 (131.6 KiB)  TX bytes:122678 (119.8 KiB)
 
 
 
[root@backup ~]# cat /etc/redhat-release
 
CentOS release 6.7 (Final)
 
[root@backup ~]# uname -r
 
2.6.32-573.el6.x86_64
 
[root@backup ~]# rsync --version
 
rsync  version 3.0.6  protocol version 30
 
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
 
Web site: http://rsync.samba.org/
 
Capabilities:
 
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
 
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
 
    append, ACLs, xattrs, iconv, symtimes
 
 
 
rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
 
are welcome to redistribute it under certain conditions.  See the GNU
 
General Public Licence for details.
Rsync 的配置文件在/etc/rsycnd.conf   默认是不存在的

可以man rsyncd.conf 查看配置文件里的内容,然后再来添加

[root@backup ~]# vim /etc/rsyncd.conf
 
#rsync_config__________________________start
 
#created by oldboy 20:30 2018-3-13
 
##rsyncd.conf start##
 
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
 
[backup]
 
path = /backup
 
ignore errors
 
read only = false
 
list = false
 
hosts allow = 172.16.1.0/24
 
hosts deny = 0.0.0.0/32
 
auth users = rsync_backup
 
secrets file = /etc/rsync.password
 
#rsync_config________________end
 
~                                                                                
 
"/etc/rsyncd.conf" 21L, 488C 已写入
 
  
 
[root@backup ~]# id rsync   ==》查看rsync用户是否存在
 
id: rsync:无此用户
 
[root@backup ~]# useradd rsync -s /sbin/nologin -M   -M:不建家目录
 
[root@backup ~]# tail -1 /etc/passwd
 
rsync:x:501:501::/home/rsync:/sbin/nologin
 
[root@backup ~]# rsync --daemon   ==》启动服务
 
[root@backup ~]# ps -ef |grep rsync|grep -v grep   ==》查看是否启动
 
root      27649      1  0 20:39 ?        00:00:00 rsync --daemon
 
[root@backup ~]# ll -d /backup
 
ls: 无法访问/backup: 没有那个文件或目录
 
[root@backup ~]# mkdir /backup
 
[root@backup ~]# ls -ld /backup
 
drwxr-xr-x 2 root root 4096 3月  13 20:44 /backup
 
[root@backup ~]# chmod 777 /backup   ==》不安全
 
[root@backup ~]# ll -d /backup
 
drwxrwxrwx 2 root root 4096 3月  13 20:44 /backup
 
[root@backup ~]# chmod 755 /backup
 
[root@backup ~]# ll -d /backup
 
drwxr-xr-x 2 root root 4096 3月  13 20:44 /backup
 
[root@backup ~]# chown rsync.rsync /backup   权限越小越安全
 
[root@backup ~]# ll -d /backup
 
drwxr-xr-x 2 rsync rsync 4096 3月  13 20:44 /backup
 
[root@backup ~]# ll /etc/rsync.passwd
 
ls: 无法访问/etc/rsync.passwd: 没有那个文件或目录
 
[root@backup ~]# vim /etc/rsync.passwd
 
rsync_backup:oldboy     用户:密码
 
[root@backup ~]# cat /etc/rsync.passwd
 
rsync_backup:oldboy
 
[root@backup ~]# ls -l /etc/rsync.passwd
 
-rw-r--r-- 1 root root 21 3月  13 20:50 /etc/rsync.passwd
 
[root@backup ~]# chmod 600 /etc/rsync.passwd    修该/etc/rsync.passwd文件权限,注意此处必须为600不然会在日志文件中报错
 
[root@backup ~]# ls /etc/rsync.passwd -l
 
-rw------- 1 root root 21 3月  13 20:50 /etc/rsync.passwd
客户端:

[root@nfs01 ~]# ifconfig eth0
 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:82:B0:96  
 
          inet addr:10.0.0.31  Bcast:10.0.0.255  Mask:255.255.255.0
 
          inet6 addr: fe80::20c:29ff:fe82:b096/64 Scope:Link
 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
          RX packets:2391 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:1654 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:1000
 
          RX bytes:243484 (237.7 KiB)  TX bytes:228034 (222.6 KiB)
 
 
 
[root@nfs01 ~]# cat /etc/redhat-release
 
CentOS release 6.7 (Final)
 
[root@nfs01 ~]# uname -r
 
2.6.32-573.el6.x86_64
 
[root@nfs01 ~]# rsync --version
 
rsync  version 3.0.6  protocol version 30
 
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
 
Web site: http://rsync.samba.org/
 
Capabilities:
 
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
 
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
 
    append, ACLs, xattrs, iconv, symtimes
 
 
 
rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
 
are welcome to redistribute it under certain conditions.  See the GNU
 
General Public Licence for details.
 
[root@nfs01 ~]# vim /etc/rsync.password
 
oldboy
 
[root@nfs01 ~]# cat /etc/rsync.password
 
oldboy
 
[root@nfs01 ~]# chmod 600 /etc/rsync.password
 
[root@nfs01 ~]# ll /etc/rsync.password
 
-rw------- 1 root root 7 3月  14 19:24 /etc/rsync.password
 
[root@nfs01 ~]# cd /mnt/
 
[root@nfs01 mnt]# mkdir -p /backup
 
[root@nfs01 mnt]# ll
 
总用量 0
 
[root@nfs01 mnt]# ll -d /backup
 
drwxr-xr-x 2 root root 4096 3月  14 19:25 /backup
客户端向服务端推送:

[root@nfs01 mnt]# cd /backup/    ==》在客户端创建一个和服务端相同的目录,目的是为了可以将需要推送的文件都放到该目录下进行推送
 
[root@nfs01 backup]# touch stu{01..100}   ==》在该目录下创建文件
 
[root@nfs01 backup]# rsync -avz /backup/ [email protected]::backup/ --password-file=/etc/rsync.password      ==》将该目录下的文件都推送给服务端
 
sending incremental file list
 
./
 
stu001
 
stu002
 
stu003
 
......
 
stu099
 
stu100
 
 
 
sent 4425 bytes  received 1911 bytes  12672.00 bytes/sec
 
total size is 0  speedup is 0.00
 
[root@backup ~]# ls /backup/   ==》查看服务端下/backup/下的文件
 
stu001  stu011  stu021  stu031  stu041  stu051  stu061  stu071  stu081  stu091 ==》推送成功
 
[root@nfs01 backup]# rsync -avz /backup/ rsync://[email protected] /backup/ --password-file=/etc/rsync.password    ==》另一种推送方法
 
Unexpected remote arg: rsync://[email protected]
 
rsync error: syntax or usage error (code 1) at main.c(1201) [sender=3.0.6]
 
[root@nfs01 backup]# rsync -avz /backup/ rsync://[email protected]/backup/ --password-file=/etc/rsync.password
 
sending incremental file list
 
./
 
stu001
 
stu002
 
stu003
 
[root@backup ~]# rm -fr /backup/   ==》注意这里的删除是将该目录及该目录下的文件全删除
 
[root@backup ~]# cd /backup
 
-bash: cd: /backup: 没有那个文件或目录
 
[root@backup ~]#
 
[root@backup ~]#
 
[root@backup ~]#
 
[root@backup ~]# mkdir /backup
 
[root@backup ~]# chown rsync.rsync /backup
 
[root@backup ~]# ll /backup/
 
总用量 0
 
[root@backup ~]# ll /backup
 
总用量 0
 
[root@backup ~]# ll /backup -d
 
drwxr-xr-x 2 rsync rsync 4096 3月  14 19:48 /backup
 
[root@backup ~]# ll /backup
 
总用量 0
 
-rw-r--r-- 1 rsync rsync 0 3月  14 19:27 stu001
 
-rw-r--r-- 1 rsync rsync 0 3月  14 19:27 stu002
 
-rw-r--r-- 1 rsync rsync 0 3月  14 19:27 stu003
 
-rw-r--r-- 1 rsync rsync 0 3月  14 19:27 stu004
 
[root@nfs01 backup]# rsync -avz /backup/ rsync://[email protected]/backup/stu01 --password-file=/etc/rsync.password     ==》这里是推送目录下的某一个文件,这里只展示一种方法
 
sending incremental file list
 
created directory stu01
 
./
 
stu001
 
stu002
 
stu003
 
stu004
 
stu005
 
stu006
 
st[root@backup ~]# ll /backup/   ==》推送成功
 
总用量 4
 
drwxr-xr-x 2 rsync rsync 4096 3月  14 19:27 stu01
 
u007
里程碑2:

模拟

因为在客户机上/var/www/heml   /app/logs这两个文件没有,所以需要模拟:

[root@nfs01 backup]# mkdir /var/www/html /app/logs -p
打包:

[root@nfs01 backup]# cd /
 
[root@nfs01 /]# tar zcvfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs
 
var/spool/cron/root
 
etc/rc.local
 
etc/sysconfig/iptables
 
var/www/html/
 
app/logs/
推送:

[root@nfs01 /]# rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password
 
sending incremental file list
 
./
 
backup_2018-03-18.tar.gz
 
 
 
sent 841 bytes  received 30 bytes  116.13 bytes/sec
 
total size is 731  speedup is 0.84
 
[root@backup backup]# ll
 
总用量 4
 
-rw-r--r-- 1 rsync rsync 731 3月  18 15:52 backup_2018-03-18.tar.gz
删除:

[root@nfs01 /]# find /backup/ -type f -name "*.tar.gz" -mtime +7 |xargs rm -f
放入脚本:

[root@nfs01 /]# mkdir -p /server/scripts   ==》存放脚本的目录,都写在该目录下
 
[root@nfs01 /]# cd /server/scripts/
 
[root@nfs01 scripts]# vim bak.sh     ==》打包,推送,删除,保留等要求都放在该脚本里
 
cd / &&\      ==》切换到/目录下, &&\的作用时链接两个命令
 
tar zcfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local etc   ==》打包
 
/sysconfig/iptables var/www/html app/logs &&\
 
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.
 
password &&\                         ==》推送
 
find /backup/ -type f -name "*.tar.gz" -mtime +7 |xargs rm -f   ==》删除
 
[root@nfs01 scripts]# rm -f /backup/*   ==》删除/bakcup/目录下的所有文件,防止干扰下面的实验
 
[root@backup ~]# rm -f /backup/*    ==》删除/bakcup/目录下的所有文件,防止干扰下面的实验
 
[root@backup ~]# ll /backup/      ==》查看一下是否完全删除/backup/目录下的所有文件
 
总用量 0
 
[root@nfs01 scripts]# sh bak.sh    ==》执行脚本
 
[root@nfs01 scripts]# ll /backup/   ==》查看执行结果
 
总用量 4
 
-rw-r--r-- 1 root root 731 3月  18 16:06 backup_2018-03-18.tar.gz
 
[root@backup ~]# ll /backup/    ==》查看执行结果
 
总用量 4
 
-rw-r--r-- 1 rsync rsync 731 3月  18 16:08 backup_2018-03-18.tar.gz
 
[root@backup ~]# md5sum /etc/hosts    ==》md5sum 指纹验证命令,确保传送安全性
 
54fb6627dbaa37721048e4549db3224d  /etc/hosts
 
[root@backup ~]# md5sum /bin/ls    ==》也可以指纹验证二进制文件
 
d5a715d0390ec5c2855094c805b08787  /bin/ls
 
[root@nfs01 scripts]# vim bak.sh    ==》向脚本中加入指纹验证 确保安全性能
 
cd / &&\
 
tar zcfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local etc
 
/sysconfig/iptables var/www/html app/logs &&\
 
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.
 
password &&\
 
md5sum /backup/backup_$(date +%F).tar.gz >/backup/flag_$(date +%F).log  ==向指纹放到.log文件中,以便查看
 
find /backup/ -type f -name "*.tar.gz" -mtime +7 |xargs rm -f                                                                           
 
"bak.sh" 5L, 359C 已写入                                     
 
[root@nfs01 scripts]# cat bak.sh    ==查看脚本
 
cd / &&\
 
tar zcfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
 
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.password &&\
 
md5sum /backup/backup_$(date +%F).tar.gz >/backup/flag_$(date +%F).log
 
find /backup/ -type f -name "*.tar.gz" -mtime +7 |xargs rm -f
 
[root@backup backup]# rm -f *   ==》删除/bakcup/目录下的所有文件,防止干扰下面的实验
 
[root@backup backup]# ll
 
总用量 0
 
[root@nfs01 scripts]# sh bak.sh   ==》执行脚本
 
[root@backup backup]# ll   ==》查看脚本执行结果
 
总用量 8
 
-rw-r--r-- 1 rsync rsync 731 3月  18 16:22 backup_2018-03-18.tar.gz
 
-rw-r--r-- 1 rsync rsync  67 3月  18 16:22 flag_2018-03-18.log
 
当多台客户端同时备份时,通过ip可以知道备份文件的所属谁者
 
[root@nfs01 scripts]# ifconfig eth1    ==》查看IP
 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:82:B0:A0  
 
          inet addr:172.16.1.31  Bcast:172.16.1.255  Mask:255.255.255.0
 
          inet6 addr: fe80::20c:29ff:fe82:b0a0/64 Scope:Link
 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 
          RX packets:731 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:555 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:1000
 
          RX bytes:86214 (84.1 KiB)  TX bytes:80803 (78.9 KiB)
 
 
 
[root@nfs01 scripts]# ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}'    ==》用awk取IP
 
172.16.1.31
 
[root@nfs01 scripts]# vim bak.sh   
 
cd / &&\
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')   ==》向脚本中加入取IP,然后让所有的备份文件都打上IP标签
 
Path=/backup           ==》黄色部分是不同上面脚本的地方,这样做的好处是可以简写脚本
 
Time=$(date +%F)
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sys
 
config/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.pa
 
ssword &&\
 
find $Path/ -type f -name "*.tar.gz" -name "*.log" -mtime +7 |xargs rm -f                                                                          
 
"bak.sh" 10L, 467C 已写入
 
[root@backup backup]# rm -fr *
 
[root@nfs01 scripts]# sh /server/scripts/bak.sh
 
[root@backup backup]# ll
 
总用量 12
 
drwxr-xr-x 2 rsync rsync 4096 3月  18 16:35 172.16.1.31    ==》这里就出现了上面脚本里的添加内容
 
-rw-r--r-- 1 rsync rsync  731 3月  18 16:22 backup_2018-03-18.tar.gz
 
-rw-r--r-- 1 rsync rsync   67 3月  18 16:22 flag_2018-03-18.log
 
[root@backup backup]# cd 172.16.1.31/
 
[root@backup 172.16.1.31]# ll
 
总用量 8
 
-rw-r--r-- 1 rsync rsync 731 3月  18 16:36 backup_2018-03-18.tar.gz
 
-rw-r--r-- 1 rsync rsync  79 3月  18 16:36 flag_2018-03-18.log
 
[root@backup 172.16.1.31]# cat flag_2018-03-18.log      ==》注意这里的.log里的内容是指纹
 
8434085d89e8706fda82ec4c0ec5ac8b  /backup/172.16.1.31/backup_2018-03-18.tar.gz
 
[root@nfs01 scripts]# cat bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
Time=$(date +%F)
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&\
 
find $Path/ -type f -name "*.tar.gz" -name "*.log" -mtime +7 |xargs rm -f
 
[root@nfs01 scripts]# find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \)
 
/backup/172.16.1.31/flag_2018-03-18.log
 
/backup/172.16.1.31/backup_2018-03-18.tar.gz     ==》这里是为了删除7天前的数据
 
/backup/flag_2018-03-18.log
 
/backup/backup_2018-03-18.tar.gz
 
[root@nfs01 scripts]# find /backup/ -type f -mtime +7 \( -name "*.log" -o -name "*.tar.gz" \)
 
[root@nfs01 scripts]# vim bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
Time=$(date +%F)
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sys
 
config/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.pa
 
ssword &&\
 
find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs
 
rm -f                                                                   
 
"bak.sh" 10L, 478C 已写入
 
[root@nfs01 scripts]# sh bak.sh
 
/backup/172.16.1.31/flag_2018-03-18.log /backup/172.16.1.31/backup_2018-03-18.tar.gz
 
[root@nfs01 scripts]# cd /backup/
 
[root@nfs01 backup]# ll
 
总用量 4
 
drwxr-xr-x 2 root root 4096 3月  18 17:11 172.16.1.31
 
[root@backup backup]# ll
 
总用量 4
 
drwxr-xr-x 2 rsync rsync 4096 3月  18 17:11 172.16.1.31
 
[root@nfs01 scripts]# vim bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 6 ]
 
Then         这里的判断语句主要是为了分辨出星期六,因为星期六的备份要永久保留
 
 Time=$(date +%F-%w)
 
else
 
 Time=$(date +%F)
 
fi
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sys
 
config/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.pa
 
ssword &&\
 
find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs
 
"bak.sh" 17L, 539C 已写入                                    
 
[root@nfs01 scripts]# date -s "2018/3/24"   ==》修改时间是为了验证脚本
 
2018年 03月 24日 星期六 00:00:00 CST
 
[root@nfs01 scripts]# sh bak.sh
 
/backup/172.16.1.31/backup_2018-03-24-6.tar.gz /backup/172.16.1.31/flag_2018-03-24-6.log /backup/172.16.1.31/flag_2018-03-18.log /backup/172.16.1.31/flag_2018-04-22.log /backup/172.16.1.31/backup_2018-04-22.tar.gz /backup/172.16.1.31/backup_2018-03-18.tar.gz /backup/flag_2018-04-22.log /backup/backup_2018-04-22.tar.gz
 
[root@backup backup]# ll
 
总用量 12
 
drwxr-xr-x 2 rsync rsync 4096 3月  24 2018 172.16.1.31
 
-rw-r--r-- 1 rsync rsync  761 4月  22 2018 backup_2018-04-22.tar.gz
 
-rw-r--r-- 1 rsync rsync   68 4月  22 2018 flag_2018-04-22.log
 
[root@backup backup]# cd 172.16.1.31/
 
[root@backup 172.16.1.31]# ll
 
总用量 24
 
-rw-r--r-- 1 rsync rsync 761 3月  18 17:14 backup_2018-03-18.tar.gz     ==》两者对比,发现有不同之处
 
-rw-r--r-- 1 rsync rsync 761 3月  24 2018 backup_2018-03-24-6.tar.gz
 
-rw-r--r-- 1 rsync rsync 761 4月  22 2018 backup_2018-04-22.tar.gz
 
-rw-r--r-- 1 rsync rsync  79 3月  18 17:14 flag_2018-03-18.log
 
-rw-r--r-- 1 rsync rsync  81 3月  24 2018 flag_2018-03-24-6.log
 
-rw-r--r-- 1 rsync rsync  79 4月  22 2018 flag_2018-04-22.log
 
[root@nfs01 scripts]# cat bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 0 ]
 
then
 
 Time=$(date +%F-%w -d "-1day")
 
else
 
 Time=$(date +%F -d "-1day")
 
fi
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&\
 
find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs
 
rm -f
 
[root@backup backup]# ll
 
总用量 20
 
drwxr-xr-x 2 rsync rsync 4096 3月  24 2018 172.16.1.31
 
-rw-r--r-- 1 rsync rsync  761 3月  24 2018 backup_2018-03-24-6.tar.gz
 
-rw-r--r-- 1 rsync rsync  761 4月  22 2018 backup_2018-04-22.tar.gz
 
-rw-r--r-- 1 rsync rsync   70 3月  24 2018 flag_2018-03-24-6.log
 
-rw-r--r-- 1 rsync rsync   68 4月  22 2018 flag_2018-04-22.log
 
[root@backup backup]# rm -rf *
 
[root@backup backup]# ll
 
总用量 0
 
[root@nfs01 scripts]# sh bak.sh
 
/backup/172.16.1.31/backup_2018-03-24-6.tar.gz /backup/172.16.1.31/flag_2018-03-24-6.log /backup/172.16.1.31/flag_2018-03-18.log /backup/172.16.1.31/flag_2018-04-22.log /backup/172.16.1.31/flag_2018-03-23.log /backup/172.16.1.31/backup_2018-04-22.tar.gz /backup/172.16.1.31/backup_2018-03-18.tar.gz /backup/172.16.1.31/backup_2018-03-23.tar.gz /backup/backup_2018-03-24-6.tar.gz /backup/flag_2018-03-24-6.log /backup/flag_2018-04-22.log /backup/backup_2018-04-22.tar.gz
 
[root@backup backup]# ll
 
总用量 20
 
drwxr-xr-x 2 rsync rsync 4096 3月  24 2018 172.16.1.31
 
-rw-r--r-- 1 rsync rsync  761 3月  24 2018 backup_2018-03-24-6.tar.gz
 
-rw-r--r-- 1 rsync rsync  761 4月  22 2018 backup_2018-04-22.tar.gz
 
-rw-r--r-- 1 rsync rsync   70 3月  24 2018 flag_2018-03-24-6.log
 
-rw-r--r-- 1 rsync rsync   68 4月  22 2018 flag_2018-04-22.log
 
[root@backup backup]# cd 172.16.1.31/
 
[root@backup 172.16.1.31]# ll
 
总用量 32
 
-rw-r--r-- 1 rsync rsync 761 3月  18 17:14 backup_2018-03-18.tar.gz
 
-rw-r--r-- 1 rsync rsync 761 3月  24 2018 backup_2018-03-23.tar.gz
 
-rw-r--r-- 1 rsync rsync 761 3月  24 2018 backup_2018-03-24-6.tar.gz
 
-rw-r--r-- 1 rsync rsync 761 4月  22 2018 backup_2018-04-22.tar.gz
 
-rw-r--r-- 1 rsync rsync  79 3月  18 17:14 flag_2018-03-18.log
 
-rw-r--r-- 1 rsync rsync  79 3月  24 2018 flag_2018-03-23.log
 
-rw-r--r-- 1 rsync rsync  81 3月  24 2018 flag_2018-03-24-6.log
 
-rw-r--r-- 1 rsync rsync  79 4月  22 2018 flag_2018-04-22.log
 
[root@nfs01 scripts]# vim bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 0 ]
 
then
 
 Time="week_$(date +%F_%w -d "-1day")"
 
else
 
 Time=$(date +%F -d "-1day")
 
fi
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sys
 
config/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.pa
 
ssword &&\
 
find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs rm -f
 
"b[root@nfs01 scripts]# date
 
2016年 05月 01日 星期日 00:04:43 CST
 
ak.sh" 17L, 568C 已写入             
 
[root@nfs01 scripts]# sh bak.sh
 
/backup/172.16.1.31/backup_2018-03-24-6.tar.gz /backup/172.16.1.31/flag_2018-03-24-6.log /backup/172.16.1.31/flag_2018-03-18.log /backup/172.16.1.31/flag_2018-04-22.log /backup/172.16.1.31/flag_2018-03-23.log /backup/172.16.1.31/backup_2018-04-22.tar.gz /backup/172.16.1.31/backup_2018-03-18.tar.gz /backup/172.16.1.31/backup_2018-03-23.tar.gz /backup/backup_2018-03-24-6.tar.gz /backup/flag_2018-03-24-6.log /backup/flag_2018-04-22.log /backup/backup_2018-04-22.tar.gz
 
[root@nfs01 scripts]# cd /backup/172.16.1.31/
 
[root@nfs01 scripts]# ls /backup/
 
172.16.1.31                      flag_2018-03-24-6.log
 
backup_2018-03-24-6.tar.gz       flag_2018-04-22.log
 
backup_2018-04-22.tar.gz         flag_week_2016-04-30_6.log
 
backup_week_2016-04-30_6.tar.gz
 
[root@backup scripts]# vim del_data.sh
 
find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f    删除180天以前的备份文件
 
[root@backup backup]# find /backup/ -type f -mtime -7 ! -name "*week*_6*"
 
/backup/172.16.1.31/backup_2018-03-24-6.tar.gz
 
/backup/172.16.1.31/flag_2018-03-24-6.log
 
/backup/172.16.1.31/flag_2018-03-18.log
 
/backup/172.16.1.31/flag_2018-04-22.log
 
/backup/172.16.1.31/flag_2018-03-23.log
 
/backup/172.16.1.31/backup_2018-04-22.tar.gz
 
/backup/172.16.1.31/backup_2018-03-18.tar.gz
 
/backup/172.16.1.31/backup_2018-03-23.tar.gz
 
/backup/backup_2018-03-24-6.tar.gz
 
/backup/flag_2018-03-24-6.log
 
/backup/flag_2018-04-22.log
 
/backup/backup_2018-04-22.tar.gz
 
[root@backup 172.16.1.31]# md5sum -c /backup/172.16.1.31/flag_week_2016-04-30_6.log
 
/backup/172.16.1.31/backup_week_2016-04-30_6.tar.gz: 确定
在上面的脚本段中可能看的有点头大,下面我给出最终的脚本

最终的脚本

[root@nfs01 ~]# cat /server/scripts/bak.sh
 
IP=$(ifconfig eth1 |awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 0 ]
 
then
 
 Time="week_$(date +%F_%w -d "-1day")"
 
else
 
 Time=$(date +%F -d "-1day")
 
fi
 
mkdir $Path/$IP/ -p
 
 
 
cd / &&\
 
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs &&\
 
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
 
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&\
 
find /backup/ -type f -mtime -7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs
 
rm -f
 
 
 
[root@backup scripts]# mv del_data.sh check_and_del.sh
 
 
 
[root@backup scripts]# cat check_and_del.sh
 
IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 0 ]
 
then
 
 Time="week_$(date +%F_%w -d "-1day")"
 
else
 
 Time=$(date +%F -d "-1day")
 
fi
 
LANG=en
 
find /backup/ -type f -name "*${Time}*.log"|xargs md5sum -c  >>$Path/${Time}_result.log 2>&1 &&\
 
mail -s "$Time bak result" [email protected] <$Path/${Time}_result.log
 
find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f
 
Or
 
 
 
IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2 {print $4}')
 
Path=/backup
 
if [ $(date +%w) -eq 0 ]
 
then
 
 Time="week_$(date +%F_%w -d "-1day")"
 
else
 
 Time=$(date +%F -d "-1day")
 
fi
 
LANG=en
 
find /backup/ -type f -name "*${Time}*.log"|xargs md5sum -c  >>$Path/${Time}_res
 
ult.log 2>&1 
 
mail -s "$Time bak result" [email protected] <$Path/${Time}_result.log
 
find /backup/ -type f -mtime +180 ! -name "*week*_6*"|xargs rm -f
 
 
定时任务:

[root@nfs01 scripts]# crontab -l
 
*/5  *  *  *  *  /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
 
#bak all server bata
 
00 00 * * * /bin/sh  /server/scripts/bak.sh >/dev/null 2>&1
 
 
 
[root@backup scripts]# crontab -l
 
*/5  *  *  *  *  /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1
 
##check and del data by oldboy 20180319
 
00 04 * * * /bin/sh /server/scripts/check_and_del.sh >/dev/null 2>&1
 
里程碑3:

做检查:

检查验证文件在传输过程中是否存在错误---指纹验证

发邮件:配置mail使用外部SMTP发邮件

通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail/postfix等内部邮件服务而用外部的smtp服务器发送邮件的目的:

修改/etc/mail.rc最后一行加入

set [email protected] smtp=smtp.163.com smtp-auth-user=xiaxia_5321

Smtp-auth-password=shani123  smtp-auth=login

说明:

from是发送的邮件地址

smtp是发生的外部smtp服务器的地址

smtp-auth-user是外部smtp服务器认证的用户名

smtp-auth-password是外部smtp服务器认证的密码

Smtp-auth是外部smtp服务器认证的方式

set from=******@163.com smtp=stmp.163.com smtp-auth-user=******

smtp-auth-password=lk123123 smtp-auth=login

这里我是用临时注册网易邮箱来做的实验,用qq邮箱也可以,但有可能会被当作垃圾邮件处理,而且用的次数多了,可能邮箱会被封哦!

网易邮箱做此实验的前提是,需要设置客户端授权码为开启状态:

设置--POP3/SMTP/IMAP--客户端授权码--设置客户端授权码--开启--自己设置授权码(也就是smtp-auth-password的密码)

模拟数据

[root@backup backup]# date
 
2018年 03月 19日 星期一 18:18:59 CST
 
[root@backup backup]# date -s 20160426
 
2016年 04月 26日 星期二 00:00:00 CST
 
[root@nfs01 backup]# seq 25 30 |awk '{print "date -s 201604"$0}'
 
date -s 20160425
 
date -s 20160426
 
date -s 20160427
 
date -s 20160428
 
date -s 20160429
 
date -s 20160430
 
[root@nfs01 backup]# seq 25 30 |awk '{print "date -s 201604"$0"&&/bin/sh /server/scripts/bak.sh"}'|bash
 
2016年 04月 25日 星期一 00:00:00 CST
 
/backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-24.log
 
2016年 04月 26日 星期二 00:00:00 CST
 
/backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-24.log /backup/172.16.1.31/flag_2016-04-25.log /backup/172.16.1.31/backup_2016-04-25.tar.gz
 
2016年 04月 27日 星期三 00:00:00 CST
 
/backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-24.log /backup/172.16.1.31/flag_2016-04-25.log /backup/172.16.1.31/flag_2016-04-26.log /backup/172.16.1.31/backup_2016-04-26.tar.gz /backup/172.16.1.31/backup_2016-04-25.tar.gz
 
2016年 04月 28日 星期四 00:00:00 CST
 
/backup/172.16.1.31/flag_2016-04-27.log /backup/172.16.1.31/backup_2016-04-27.tar.gz /backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-24.log /backup/172.16.1.31/flag_2016-04-25.log /backup/172.16.1.31/flag_2016-04-26.log /backup/172.16.1.31/backup_2016-04-26.tar.gz /backup/172.16.1.31/backup_2016-04-25.tar.gz
 
2016年 04月 29日 星期五 00:00:00 CST
 
/backup/172.16.1.31/backup_2016-04-28.tar.gz /backup/172.16.1.31/flag_2016-04-28.log /backup/172.16.1.31/flag_2016-04-27.log /backup/172.16.1.31/backup_2016-04-27.tar.gz /backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-24.log /backup/172.16.1.31/flag_2016-04-25.log /backup/172.16.1.31/flag_2016-04-26.log /backup/172.16.1.31/backup_2016-04-26.tar.gz /backup/172.16.1.31/backup_2016-04-25.tar.gz
 
2016年 04月 30日 星期六 00:00:00 CST
 
/backup/172.16.1.31/backup_2016-04-28.tar.gz /backup/172.16.1.31/flag_2016-04-28.log /backup/172.16.1.31/flag_2016-04-27.log /backup/172.16.1.31/backup_2016-04-27.tar.gz /backup/172.16.1.31/backup_2016-04-24.tar.gz /backup/172.16.1.31/flag_2016-04-29.log /backup/172.16.1.31/flag_2016-04-24.log /backup/172.16.1.31/backup_2016-04-29.tar.gz /backup/172.16.1.31/flag_2016-04-25.log /backup/172.16.1.31/flag_2016-04-26.log /backup/172.16.1.31/backup_2016-04-26.tar.gz /backup/172.16.1.31/backup_2016-04-25.tar.gz
 
[root@nfs01 backup]# ll
 
总用量 4
 
drwxr-xr-x 2 root root 4096 4月  30 00:00 172.16.1.31
 
[root@nfs01 backup]# ls 172.16.1.31/
 
backup_2016-04-24.tar.gz  backup_2016-04-28.tar.gz  flag_2016-04-26.log
 
backup_2016-04-25.tar.gz  backup_2016-04-29.tar.gz  flag_2016-04-27.log
 
backup_2016-04-26.tar.gz  flag_2016-04-24.log       flag_2016-04-28.log
 
backup_2016-04-27.tar.gz  flag_2016-04-25.log       flag_2016-04-29.log
 
[root@backup backup]# sh /server/scripts/check_and_del.sh
 
[root@backup backup]# mailq
 
Mail queue is empty
成功!

总结

全网备份是一个运维人员必备的技术,本实验是在老男孩老师的帮助下完成的,这个实验不仅仅是对前一个阶段知识的总结,更是为后一个阶段的运维学习做基石,本次实验用了我一天的时间,中间出现了一些错误,因为是我个人的错误在这里我不之处了,上面的实验步骤很是详细,希望对喜欢学习运维的朋友们有一定的帮助。学习是一步一个脚印的,每一步都是未知,坚持才能有所收获,希望朋友们不要轻言放弃;每一步都有收获,希望朋友们能做出自己的实验总结,将实验转化为自己的。另本实验是在虚拟机能上网的前提下进行!!!
 

stay hungry,stay foolish

猜你喜欢

转载自blog.csdn.net/m0_37574578/article/details/85338297