服务器系统存储隔离,物理隔离环境搭建存储服务器——第三篇:其余补充

(注:如若记忆没有出现偏差,本文应是写于2015年,楼主习惯使用LaTeX写笔记,后发现markdown不错,于是稍有修改后发布与此。)

(下文中的所有命令需要以root权限执行)

(Debian下载地址

前言

这部分内容是对前面内容简略部分的补充。

一、邮件设置

这里使用的软件为 msmtp,该软件小巧且易于配置。邮箱客户端软件用的是 mutt,该软件同样小巧,但是功能强大。

Tips:一般系统提供了 mail、 mutt、 sendmail 等工具,有时候系统提供的 sendmail 工具指向了其它的 mail 服务软件,例如在 Debian 8.3 中, sendmail 是 exim4 这个软件的一个软链接,而 mail 命令来自于 bsd-mailx。

1.1 mail配置

mail 会读取/etc/目录下的 mail.rc 文件,或者读取用户家目录下的.mailrc 文件。但是 mail 似乎不能自定义配置文件的位置,在某些情况下会导致不便。可以在 mail.rc 文件中增加一行,使用msmtp 发送邮件。

set sendmail="/usr/bin/msmtp"

1.2 msmtp配置文件

mutt会读取/etc/目录下的Muttrc文件,或读取用户家目录下的.muttrc文件,也可以用-F参数指定配置文件。一个示例如下:

account default

host smtp.126.com

port 25

from xxx@xxx.com

auth login

user xxx@xxx.com

password xxxx

logfile /root/Mail/Log/msmtp.log

1.3 mutt配置

mutt会读取/etc/目录下的Muttrc文件,或读取用户家目录下的.muttrc文件,也可以用-F参数指定配置文件。一个示例如下:

set from="xxx@xxx.com"

set sendmail="/usr/bin/msmtp"

set use_from=yes

set realname="张三"

set editor="vim"

在使用nagios的邮件警报功能时,可以将配置文件放在一个特定的目录下,稍微修改一下%

上述参数即可。

set from="xxx@xxx.com"

set sendmail="/usr/bin/msmtp -C /etc/nagios3/.msmtprc"

set use_from=yes

set realname="Nagios3 警报"

set editor="vim"

然后将发送邮件的命令改为:/usr/bin/mutt -F /etc/nagios3/.muttrc。不过需要注意的是,要保证两份配置文件对nagios进程的拥有者是可读取的,例如默认情况下,Debian 8.x中nagios是以nagios用户和nagios组权限执行的。当然也可以将配置文件放置在nagios进程的拥有者的家目录底下,此时使用mail命令也可。

二、日志

2.1 相关要点

2.1.1 日志文件的意义

一些常用到的日志文件的作用如下:

/var/log/boot.log:开机启动信息。

/var/log/cron:与 crontab 日程相关。

/var/log/dmesg:开机核心信息。

/var/log/lastlog:二进制文件,记录所有账号最近一次登录信息,使用lastlog命令读取。

/var/log/mail/*:邮件相关的日志。

/var/log/messages:与系统相关的重要信息。

/var/log/secure:与账号密码相关的信息会记录在这个日志文件中,所以这个文件和安全直接相关。

2.1.2 日志文件的格式

日志文件一般按下述顺序输出:

日志的日期与时间;

相关的主机名;

相关的程序的名字;

日志内容。

2.1.3 信息的等级

日志输出的信息分成不同的等级,下表列出了不同等级信息的意义:

等级

名称

意义

0

emerg

硬件级别的严重错误。

1

alert

警告,遇到严重问题。

2

crit

遇到严重错误,面临崩溃。(在第一篇中,硬件温度信息输出有此项。)

3

err

程序遇到错误,一般是软件级别的。

4

warning

警告信息,比如软件可能会不适用之类的,一般不会影响运行。

5

notice

提醒软件运行过程中可能需要注意的信息。

6

info

基本信息,方便回溯软件运行。

7

debug

辅助debug使用。

(关于输出信息的分类,熟悉Android开发的小伙伴必然知道,Android的Log类就可以将开发过程中的不同信息分类输出,而且调试的时候可以使用过滤器提取不同类别的信息。)

2.1.4 logrotate日志轮替

Linux中的日志一般是采用如下的方式:

a.log → a1.log → a2.log ...

最新的日志存入a.log,将较老的日志往后面的文件存储。logrotate的配置文件在/etc/logrotate.conf和/etc/logrotate.d/目录中。可以配置日志的存储数目和是否采用压缩等。

2.2 Debian 8.x日志

Debian 8.x 系统的/etc/rsyslog.conf 文件内容如下:

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$FileOwner root

$FileGroup adm

$FileCreateMode 0640

$DirCreateMode 0755

$Umask 0022

$WorkDirectory /var/spool/rsyslog

$IncludeConfig /etc/rsyslog.d/*.conf

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog

daemon.* -/var/log/daemon.log

kern.* -/var/log/kern.log

lpr.* -/var/log/lpr.log

mail.* -/var/log/mail.log

user.* -/var/log/user.log

mail.info -/var/log/mail.info

mail.warn -/var/log/mail.warn

mail.err /var/log/mail.err

news.crit /var/log/news/news.crit

news.err /var/log/news/news.err

news.notice -/var/log/news/news.notice

*.=debug;\

auth,authpriv.none;\

news.none;mail.none -/var/log/debug

*.=info;*.=notice;*.=warn;\

auth,authpriv.none;\

cron,daemon.none;\

mail,news.none -/var/log/messages

*.emerg :omusrmsg:*

daemon.*;mail.*;\

news.err;\

*.=debug;*.=info;\

*.=notice;*.=warn |/dev/xconsole

Tips:这里需要注意的是:/var/log/auth.log 记录了用户认证登录的敏感信息,而不是像CentOS系统一样记录在/var/log/secure文件中。

2.3 保护日志

若系统被入侵,为了隐藏踪迹,通常会将/var/log/目录恶意删除。为此可以采取将日志文件定时备份到远程系统等措施,防止查找不到攻击源。另外,可以还可以将bash的history记录备份。

三、systemd

3.1 system V启动顺序

以往system V模式系统启动顺序是:

boot loader(例如grub等)加载内核,内核加载硬件驱动程序之后,启动init程序;

init取得run-level信息,执行/etc/rc.d/rc.sysinit下的脚本;

0:halt,关机

1:single user mode,单用户模式

2:Multi-user,without NFS,无网络支持的多用户模式;

3:Full multi-user mode,有网络支持的多用户模式;

4:unused,系统保留功能,未使用;

5:X11,有网络支持有X-Window支持的多用户模式

6:reboot,即重启

根据run-level信息,执行相应level下的脚本,例如等级3的脚本在rc3.d目录下;

执行/etc/rc.d/rc.local脚本;

启动login。

3.2 systemd启动顺序

在systemd中,各种服务的依赖关系被理清,如此一来,系统可以同时启动没有依赖关系的不同服务,加快开机速度。

和System V模式类似,只是内核在加载完硬件驱动程序后,启动的是systemd,默认执行的是default.target流程:

执行sysinit.target初始化系统;

执行multi-user.target启动本机服务;

执行multi-user.target下的/etc/rc.d/rc.local文件;

执行getty.target及登录服务;

执行图形服务。

前面我们提到,使用脚本设置防火墙服务,并使脚本可以开机自动启动。在debian 8.x中,/etc/init.d/rc.local会调用/etc/rc.local,可以在这个文件中配置开机启动服务。不过通过配置unit可以通过systemctl管理,前面也是采用这种方式。

3.3 systemctl命令

systemd通过systemctl命令管理各种服务。

systemctl命令管理服务的使用方式如下:

systemctl 命令 [unit]

命令

意义

start

启动服务

stop

停止服务

restart

重启服务

reload

重新载入服务,一般是服务的配置更改了以后使用

enable

设置开机启动服务

disable

开机不会启动该服务

mask

注销服务

unmask

取消注销服务

status

查看服务的状态

is-active

服务是否正在运行

is-enable

服务是否开机启动

使用systemctl查看系统服务的命令如下:

systemctl 命令 [类别] [--all]

命令

意义

list-units

列出启动的所有unit

list-unit-files

列出/usr/lib/systemd/system/的文件

这里所说的类别指的是服务类型,一般分类如下:

类型

功能

.service

常见的服务

.socket

与数据交换相关

.target

unit集合

.mount .automount

与文件系统挂载相关

.path

与文件类型检查有关

.timer

循环执行的服务,例如备份、安全更新的服务等

四、其他

4.1 Intel Parallel XE Studio

4.1.1 安装XE

这里选择Intel Parallel XE Studio Cluster Edtion,因为该版本包含了MPI库的内容。* (官网上可以申请一年使用的License)*。

查看安装帮助可知,安装可以使用静默方式,事先用虚拟机安装一遍,可以得到配置文件,安装命令为:./install.sh -d ./autoInstall.cfg。该文件内容为:

ACCEPT_EULA=accept

INSTALL_MODE=NONRPM

CONTINUE_WITH_OPTIONAL_ERROR=yes

PSET_INSTALL_DIR=/opt/intel

CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes

PSET_MODE=install

ACTIVATION_LICENSE_FILE=/media/sf_share/XE2015/Crack/zwt.lic

ACTIVATION_TYPE=license_file

AMPLIFIER_SAMPLING_DRIVER_INSTALL_TYPE=build

AMPLIFIER_DRIVER_ACCESS_GROUP=vtune

AMPLIFIER_DRIVER_PERMISSIONS=666

AMPLIFIER_LOAD_DRIVER=yes

AMPLIFIER_C_COMPILER=/usr/bin//gcc

AMPLIFIER_KERNEL_SRC_DIR=/lib/modules/3.16.0-4-amd64/build

AMPLIFIER_MAKE_COMMAND=/usr/bin//make

AMPLIFIER_INSTALL_BOOT_SCRIPT=yes

AMPLIFIER_DRIVER_PER_USER_MODE=no

ENVIRONMENT_LD_SO_CONF=no

MPSS_RESTART_STACK=no

PHONEHOME_SEND_USAGE_DATA=no

COMPONENTS=;intel-mpi-rt__noarch;... ... 一系列组件

接下来就可以使用该文件进行静默安装,命令为:./install.sh -s autoInstall.cfg。这样就省去了以后安装需要交互操作的麻烦。

安装完毕后,还需要配置用户环境。将以下内容加入/etc/profile文件中即可。

source /opt/intel/bin/compilervars.sh intel64

source /opt/intel/impi/5.0.1.035/bin64/mpivars.sh

source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64

4.1.2 Fortran并行测试

接下来对一个简单的Fortran程序进行并行测试。

文件:hello.f90

program main

use mpi

implicit none

integer :: id, err, comm, psize

call MPI_INIT( err )

call MPI_COMM_DUP( MPI_COMM_WORLD, comm, err )

call MPI_COMM_RANK( comm, id, err )

call MPI_COMM_SIZE( comm, psize, err )

write(*,*) id, psize, " hello"

call MPI_BARRIER( comm, err )

call MPI_FINALIZE( err )

end program

编译:

mpiifort -o main hello.f90

执行:

mpirun -np 4 ./main

这里需要注意可执行文件的路径,即这里的“./”不要漏了。

3 4 hello

0 4 hello

2 4 hello

1 4 hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值