一、系统基本设置。
1、网络设置
- 查看所有网卡的信息:ifconfig -a
- 查看目前系统上默认有什么连线代号:nmcli connection show
其中有一些比较重要的参数,我们可以了解一下哈:
- connection.autoconnect [yes|no] :是否于开机时启动这个连线,默认通常是 yes .
- ipv4.method [auto|manual] :自动还是手动设置网络参数的意思.
- ipv4.dns [dns_server_ip] :就是填写 DNS 的 IP 位址
- ipv4.addresses [IP/Netmask] :就是 IP 与 netmask 的集合,中间用斜线 / 来隔开~
- ipv4.gateway [gw_ip] :就是 gateway 的 IP 位址.
我们可以通过 network 配置文件来设置成静态 IP 。
我们也可以通过 nmcli 指令来修改 :
上面两个只是修改了配置文件,要想使配置生效,需要重启网络。前面哪一个可以用:systemctl restart network 。nmcli 指令用 nmcli connection up ens33 重启。
- 修改主机名称
语法格式:hostnamectl [set-hostname 你的主机名]
eg1:显示目前的主机名称与相关信息
eg2:修改主机名称为自己名字的首字母拼音缩写:
2、日期和时间设置
- 时区的显示与设置
语法格式:timedatectl [commamd]
选项与参数:
list-timezones :列出系统上所有支持的时区名称
set-timezone :设置时区位置
set-time :设置时间
set-ntp :设置网络校时系统
eg1:显示目前的时区与时间等信息
eg2:显示出是否有 New_York 时区
eg3:将目前的时区更新一下:
- 用 ntpdate 手动网络校时
3、语系设置
eg1:如何改成英文语系的登陆界面?答:就是将 locale 改成 en_US.utf8 之后,再转成图形界面即 可!
二、服务器硬件数据的收集
1、以系统内置 dmidecode 解析硬件配备
系统有个名为 dmidecode 的软件,它可以解析 CPU 型号、主板型号与 内存相关的型号等等。
语法格式:dmidecode -t type
选项与参数:
详细的 type 项目请 man dmidecode 查询更多的数据,这里仅列出比较常用的项目:
1 :详细的系统数据,含主板的型号与硬件的基础数据等
4 :CPU 的相关数据,包括倍频、外频、核心数、核心绪数等
9 :系统的相关插槽格式,包括 PCI, PCI-E 等等的插槽规格说明
17:每一个内存插槽的规格,若内有内存,则列出该内存的容量与型号
eg1:显示出整个系统的硬件信息,例如主板型号等等。
2、硬件资源的收集与分析
- gdisk:可以使用 gdisk -l 将分区表列出;
- dmesg:观察核心运行过程当中所显示的各项讯息记录;
- vmstat:可分析系统 (CPU/RAM/IO) 目前的状态;
- lspci:列出整个 PC 系统的 PCI 接口设备!很有用的指令;
- lsusb:列出目前系统上面各个 USB 端口的状态,与连接的 USB 设备;
- iostat:与 vmstat 类似,可实时列出整个 CPU 与周边设备的 Input/Output 状态。
3、磁盘的健康状态
smartd 的服务可以知道你的磁盘是好是坏,他提供一个名为 smartctl 的指令。但虚拟机的磁盘格式并不支持 smartd,所以无法用来作为测试。
三、备份要点
1、备份要考虑的问题?
- 造成系统损毁的问题-硬件问题
- 造成系统损毁的问题-软件与人的问题
- 主机角色不同,备份任务也不同
- 备份因素考虑:备份哪些文件、选择什么备份的媒介、考虑备份的方式、备份的频率、备份使用的工具为何。
2、Linux 那些数据具有备份的意义。
- /etc/ 整个目录:这方面的文件主要跟“帐号与系统配置文件”有关系,比如/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow, /home 下面的使用者主文件夹等等。
- /home/ 整个目录:录是一般用户的主文件夹。
- /var/spool/mail/:邮件。
- /var/spoll/{at|cron}/
- /boot/:系统核心配置文件
- /root/
- /var/lib/
- 如果你自行安装过其他的软件,那么 /usr/local/ 或 /opt 也最好备份一下
- 网络服务的数据库方面:软件本身的设置文件,例如:/etc/ 整个目录,/usr/local/ 整个目录 ;软件服务提供的数据,以 WWW 及 Mariadb 为例: WWW 数据:/var/www 整个目录或 /srv/www 整个目录,及系统的使用者主文件夹 Mariadb : /var/lib/mysql 整个目录 ;其他在 Linux 主机上面提供的服务之数据库文件!
3、累计备份
所谓的累积备份,指的是在系统在进行完第一次完整备份后,经过一段时间的运行, 比较系 统与备份文件之间的差异,仅备份有差异的文件而已。而第二次累积备份则与第一次累积备 份的数据比较, 也是仅备份有差异的数据而已。如此一来,由于仅备份有差异的数据,因此 备份的数据量小且快速。
- 累积备份使用的备份软件
累计备份常用的工具有 dd, cpio, xfsdump/xfsrestore 等等。因为这些工具都能够备份设备与 特殊文件! dd 可以直接读取磁盘的扇区 (sector) 而不理会文件系统,是相当良好的备份 工具!不过缺点就是慢很多! cpio 是能够备份所有文件名,不过,得要配合 find 或其他找文 件名的指令才能够处理妥当。以上两个都能够进行完整备份, 但累积备份就得要额外使用脚 本程序来处理。可以直接进行累积备份的就是 xfsdump 这个指令。
eg1:用 dd 来将 /dev/sda 备份到完全一模一样的 /dev/sdb 硬盘上:
eg2:使用 cpio 来备份与还原整个系统,假设储存媒体为 SATA 磁带机:
还原:cpio -iduv > /dev/std
eg3:假设 /home 为一个独立的文件系统,而 /backupdata 也是一个独立的用来备份的文件系统, 那如何使用 dump 将 /home 完整的备份到 /backupdata 上呢?
- 完整备份之差异备份
差异备份与累积备份有点类似,也是需要进行第一次的完整备份后才能够进行。只是差异备 份指的是:每次的备份都是与原始的完整备份比较的结果。所以系统运行的越久,离完整备 份时间越长, 那么该次的差异备份数据可能就会越大。
- 每周系统备份的 script
#!/bin/bash
# ====================================================================
# 使用者参数输入位置:
# basedir=你用来储存此脚本所预计备份的数据之目录(请独立文件系统)
basedir=/backup/weekly <==您只要改这里就好了!
# ====================================================================
# 下面请不要修改了!用默认值即可!
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
# 设置要备份的服务的配置文件,以及备份的目录
named=$basedir/named
postfixd=$basedir/postfix
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
sambad=$basedir/samba
wwwd=$basedir/www
others=$basedir/others
userinfod=$basedir/userinfo
# 判断目录是否存在,若不存在则予以创建。
for dirs in $named $postfixd $vsftpd $sshd $sambad $wwwd $others $userinfod
do
[ ! -d "$dirs" ] && mkdir -p $dirs
done
# 1\. 将系统主要的服务之配置文件分别备份下来,同时也备份 /etc 全部。
cp -a /var/named/chroot/{etc,var} $named
cp -a /etc/postfix /etc/dovecot.conf $postfixd
cp -a /etc/vsftpd/* $vsftpd
cp -a /etc/ssh/* $sshd
cp -a /etc/samba/* $sambad
cp -a /etc/{my.cnf,php.ini,httpd} $wwwd
cd /var/lib
tar -jpc -f $wwwd/mysql.tar.bz2 mysql
cd /var/www
tar -jpc -f $wwwd/html.tar.bz2 html cgi-bin
cd /
tar -jpc -f $others/etc.tar.bz2 etc
cd /usr/
tar -jpc -f $others/local.tar.bz2 local
# 2\. 关于使用者参数方面
cp -a /etc/{passwd,shadow,group} $userinfod
cd /var/spool
tar -jpc -f $userinfod/mail.tar.bz2 mail
cd /
tar -jpc -f $userinfod/home.tar.bz2 home
cd /var/spool
tar -jpc -f $userinfod/cron.tar.bz2 cron at
- 每日备份数据的 script
#!/bin/bash
# =========================================================
# 请输入,你想让备份数据放置到那个独立的目录去
basedir=/backup/daily/ <==你只要改这里就可以了!
# =========================================================
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
basefile1=$basedir/mysql.$(date +%Y-%m-%d).tar.bz2
basefile2=$basedir/cgi-bin.$a(date +%Y-%m-%d).tar.bz2
[ ! -d "$basedir" ] && mkdir $basedir
# 1\. MysQL (数据库目录在 /var/lib/mysql)
cd /var/lib
tar -jpc -f $basefile1 mysql
# 2\. WWW 的 CGI 程序 (如果有使用 CGI 程序的话)
cd /var/www
tar -jpc -f $basefile2 cgi-bin
四、灾难复原的考虑。
- 硬件损毁,且具有完整备份的数据时
首先,你必须要先处理好你的硬件,举例来说,将你的硬盘作个适当的处 理,譬如创建成为磁盘阵列之类的。 然后依据你的备份状态来复原。
- 由于软件的问题产生的被攻破资安事件
- 先拔除网络线,最好将系统进行完整备份到其他媒体上,以备未来查验
- 开始查阅登录文件,尝试找出各种可能的问题
- 开始安装新系统 (最好找最新的 distribution)
- 进行系统的升级,与防火墙相关机制的制订
- 根据 2 的错误,在安装完成新系统后,将那些 bug 修复
- 进行各项服务与相关数据的恢复
- 正式上线提供服务,并且开始测试