容量
1B(字节) = 8bit(比特)
1kB = 1024B
系统信息
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 47G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom
free 内存
free -m #以mb的格式显示信息
free -h #以gb的格式显示信息
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2028088 703304 80620 21132 1244164 1057108
Swap: 2097148 0 2097148
查看硬盘情况
df
uname 系统和内核
uname -a :所有系统相关的信息,包括下面的数据都会被列出来;
Linux localhost 3.10.0-957.el7.x86_64 1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
uname -s :系统核心名称
linux
uname -r :核心的版本
3.10.0-957.el7.x86_64
uptime 查看系统启动时间与工作负载
uptime
平均负荷 : 1分钟 5分钟 15分钟
21:17:41 up 13:41, 4 users, load average: 0.00, 0.01, 0.05
Ps:系统的平均负荷在0.7左右为理想状态(单核)。若为两核,就是1.4
dmesg 分析核心产生的讯息
dmesg
/proc/* 系统每个进程都会在该目录下产生一个进程名的目录
因此,查看该目录下的某些文件会得到一些系统信息
cat /proc/cpuinfo #本机的 CPU 的相关信息,包含频率、类型与运算功能等
cat /proc/cmdline #了解指令是如何启动的
cat /proc/devices #记录了系统各个主要设备的主要设备代号
cat /proc/filesystems #目前系统已经载入的文件系统
cat /proc/interrupts #目前系统上面的 IRQ 分配状态
cat /proc/ioports #目前系统上面各个设备所配置的 I/O 位址
cat /proc/modules #Linux 已经载入的模块列表,也可以想成是驱动程序啦
cat /proc/swaps #系统挂载入的内存的地方
cat /proc/partitions #会出现目前所有的硬盘信息划分情况,如同fdisk -l 一样
cat /proc/bus/* #一些总线的设备,还有 USB 的设备也记录在此
CPUinfo CPU信息
cat /proc/cpuinfo
processor : 0 逻辑CPU的标识
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz 真实CPU的型号信息
stepping : 3
microcode : 0xc6
cpu MHz : 2591.999
cache size : 6144 KB
physical id : 0 真实CPU的标识
siblings : 1
core id : 0
cpu cores : 1 真实CPU的内核数
apicid : 0
initial apicid : 0
Ps:这里的0,1表示的插口的id,
内容很多,所以我们需要过滤出我们需要的信息
grep 'model name' /proc/cpuinfo | uniq #查询CPU型号
grep 'physical id' /proc/cpuinfo | sort -u | wc -l #查询物理CPU个数
grep 'cpu cores' /proc/cpuinfo | uniq #查询出每个CPU的核心数
grep "processor" /proc/cpuinfo | wc -l #查询总逻辑CPU个数
iostat 监视硬盘和CPU情况
iostat
Linux 3.10.0-957.el7.x86_64 (localhost) 07/30/2019 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle cpu信息
0.80 0.19 1.20 1.64 0.00 96.16
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn 硬盘信息
sda 4.55 343.70 17.08 1038040 51588
scd0 0.01 0.35 0.00 1050 0
dm-0 4.52 339.42 16.40 1025119 49540
dm-1 0.03 0.82 0.00 2468 0
详细情况:https://shockerli.net/post/linux-tool-iostat/
文件打包压缩
gzip
gzip [-vd] rourou
-v 压缩时候显示压缩比
-d 解压
zcat rourou.gz #查看压缩文件的内容
zgrep abc rouoru.gz #搜索压缩文件的关键字位置
zless rourou.gz #浏览文件的内容
gzip -c rourou > rourou.gz #压缩是保留源文件,默认为删除。反之,解压时也可以使用
bzip2
bzip2 [-cdkzv#] rourou.bz2
-c :将压缩的过程产生的数据输出到屏幕上!
-d :解压缩的参数
-k :保留原始文件,而不会删除原始的文件喔!
-v :可以显示出原文件/压缩文件的压缩比等信息;
-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快
bzcat rourou.bz2 #查看文件内容
bzless rourou.bz2 #查看文件内容
tar 文件打包
由于压缩只能单个文件,所以需要先打包成单个文件在压缩
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz
以上 3 个 选项互斥
日志轮转
/var/log/messages
:这个文件相当的重要,几乎系统发生的错误讯息 (或者是重要的信息) 都会记录在这个文件中; 如果系统发生莫名的错误时,这个文件是应该首先查询的。
/var/log/secure
:基本上,只要牵涉到“需要输入帐号密码”的软件,那么当登陆时 (不管登陆正确或错误) 都会被记录在此文件中。 su, sudo 等程序、还有网络连线的 ssh, telnet 等程序, 登陆信息都会被记载在这里
日志服务器状态
systemctl status rsyslog.service
● rsyslog.service - System Logging Service
Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-31 09:20:04 CST; 2h 9min ago
Docs: man:rsyslogd(8) #running说明日志服务器运行正常
http://www.rsyslog.com/doc/
Main PID: 7001 (rsyslogd)
Tasks: 3
CGroup: /system.slice/rsyslog.service
└─7001 /usr/sbin/rsyslogd -n
Jul 31 09:20:03 localhost systemd[1]: Starting System Logging Service...
Jul 31 09:20:04 localhost rsyslogd[7001]: [origin software="rsyslogd" ...t
Jul 31 09:20:04 localhost rsyslogd[7001]: imjournal: fscanf on state fi...]
Jul 31 09:20:04 localhost rsyslogd[7001]: imjournal: ignoring invalid s...]
Jul 31 09:20:04 localhost systemd[1]: Started System Logging Service.
Hint: Some lines were ellipsized, use -l to show in full.
服务类型标识.jpg
警告级别.jpg
/etc/logrotate.conf
主配置文件, 设置的默认值
/etc/logrotate.d/
被包含的子配置文件,可以对某一些服务设置特定的配置
etc/logrotate.conf 的默认值
weekly >==每周对系统的日志文件进行一次 rotate 的工作
rotate 4 >==同类的日志文件,保留 4 份!
create >==创建一个新的空文件,继续记录!
dateext >==可以让被轮转的文件名称加上日期作为文件的后缀名!
compress >==被轮转的到日志文件是否压缩
Ps:实现日志轮转的实验
1.在/etc/logrotate.d/下建立自己的配置文件
2.配置自己配置文件
/var/log/shark1.log {
monthly >== 每月一次轮转
size=10M >== 文件大小大于 10M 时, 也开始轮转
rotate 2 >== 日志文件保留 2 个
compress >== 对旧的日志文件进行压缩
sharedscripts >== 轮转之前需要先被执行命令
prerotate
/usr/bin/chattr -a /var/log/shark1.log >==去掉特殊属性
endscript
postrotate
/usr/bin/chattr +a /var/log/shark1.log >== 特殊属性,文件内容只能增加不能删除或者修改
endscript
}
3.强制执行轮转
logrotate -vf /etc/logrotate.conf
-v 显示轮转的详情
-f 立刻进行一次轮转
FTP
TCP21 命令传输端口
TCP20 数据传输端口
服务器设置
yum install vsftpd 安装服务端软件
systemctl start vsftpd 启动服务
ss -ntal 查看监听端口
输入中应该有 21 号端口被监听
LISTEN 0 32 *:21 *:*
配置文件
port_enable=YES|NO
如果你要在数据连接时取消PORT模式时,设此选项为NO。默认值为YES。
connect_from_port_20=YES|NO
控制以PORT模式进行数据传输时是否使用20端口(ftp-data)。YES使用,NO不使用。
默认值为NO,但RHEL 自带的vsftpd.conf文件中此参数设为YES。
ftp_data_port=port number
设定ftp数据传输端口值(ftp-data)。默认值为20。此参数用于PORT FTP模式。
port_promiscuous=YES|NO
默认值为NO。为YES时,取消PORT安全检查。该检查确保外出的数据只能连接到客户端上。
pasv_enable=YES|NO
YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
pasv_min_port=port number
设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。
pasv_max_port=port number
把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高。
pasv_promiscuous=YES|NO
此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。
pasv_address=
此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取
FTP服务器的用户分类
- 匿名用户的配置选项
anonymous_enable=YES|NO
控制是否允许匿名用户登录,YES允许,NO不允许,默认值为YES。
ftp_username=
匿名用户所使用的系统用户名。默认下,此参数在配置文件中不出现,值为ftp
no_anon_password=YES|NO
控制匿名用户登入时是否需要密码,YES不需要,NO需要。默认值为NO。
deny_email_enable=YES|NO
此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址进行登录的匿名用户。
即,当匿名用户使用 banned_email_file 文件中所列出的e-mail进行登录时,被拒绝。
显然,这对于阻击某些Dos攻击有效。当此参数生效时,需追加banned_email_file参数
banned_email_file=/etc/vsftpd.banned_emails
指定包含被拒绝的e-mail地址的文件,默认文件为/etc/vsftpd.banned_emails。
anon_root=
设定匿名用户的根目录,即匿名用户登入后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/。
anon_world_readable_only=YES|NO
控制是否只允许匿名用户下载可阅读文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。默认值为YES。
anon_upload_enable=YES|NO
控制是否允许匿名用户上传文件,YES允许,NO不允许,默认是不设值,即为NO。
除了这个参数外,匿名用户要能上传文件,还需要两条件:
一、write_enable=YES;
二、在文件系统上,目录有写权限。
anon_mkdir_write_enable=YES|NO
控制是否允许匿名用户创建新目录,YES允许,NO不允许,默认是不设值,即为NO。当然在文件系统上,FTP匿名用户必需对新目录的上层目录拥有写权限。 • 如果要设定为 YES, 那么 anony_other_write_enable 必须设定为 YES
anon_other_write_enable=YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的其他权限,如删除、更名等。YES拥有,NO不拥有,默认值为NO。
chown_uploads=YES|NO
是否修改匿名用户所上传文件的所属主。YES,匿名用户所上传的文件的所有权将改为另外一个不同的用户所有,用户由chown_username参数指定。此选项默认值为NO
chown_username=whoever
指定拥有匿名用户所上传文件的所属主的用户。此参数与chown_uploads一起用。不推荐使用root用户。
2.本地用户配置选项
local_enable=YES|NO
控制服务器的本地用户是否可以登录vsftpd。默认值为YES。
local_root=
定义所有本地用户的根目录。当本地用户登入时,将被更换到此目录下。默认值为无此配置语句。
user_config_dir=
定义用户个人配置文件所在的目录。用户的个人配置文件为该目录下的同名文件。个人配置文件的格式与vsftpd.conf格式相同。
例如定义user_config_dir=/etc/vsftpd/userconf,并且主机上有用户zenxiaoxian,那我们可以在user_config_dir的目录新增名为zenxiaoxian的文件。当用户zenxiaoxian登入时,VSFTPD则会读取user_config_dir下zenxiaoxian这个文件中的设定值,应用于用户zenxiaoxian。默认值为无
3.虚拟用户配置选项
guest_enable=YES|NO
若是启动这项功能,所有的非匿名登入者都视为guest。默认值为关闭。
guest_username=
定义VSFTPD的虚拟用户在系统中所映射的本地用户名。默认值为ftp。
4.用户的登陆控制
pam_service_name=vsftpd
指出VSFTPD进行PAM认证时所使用的PAM配置文件名,默认值是vsftpd,默认PAM配置文件是 /etc/pam.d/vsftpd。
5.用户目录控制
chroot_list_enable=YES|NO
锁定某些用户在自家目录中。即当这些用户登录后,不可以转到系统的其他目录,只能在自家目录(及其子目录)下。具体的用户在chroot_list_file参数所指定的文件中列出。默认值为 注释。
chroot_list_file=/etc/vsftpd/chroot_list
指出被锁定在自家目录中的用户的列表文件。文件格式为一行一用户。
通常该文件是/etc/vsftpd/chroot_list。此选项默认不设置。
chroot_local_users=YES|NO
将本地用户锁定在自家目录中。
当此项被激活时,chroot_list_enable=YES参数的作用将发生变化,chroot_list_file所指定文件中的用户将不被锁定在自家目录。本参数被激活后,可能带来安全上的冲突
passwd_chroot_enable
当此选项激活时,与chroot_local_user选项配合,chroot()容器的位置可以在每个用户的基础上指定。每个用户的容器来源于/etc/passwd中每个用户的自家目录字段。默认值为NO
tcp_wrappers=YES
支持 TCP Wrappers 的防火墙机制
客户机配置
1.安装软件
yum install -y lftp
2.连接ftp服务器
lftp 10.0.122.111
ls 查看ftp服务器的目录(被限制)
!ls 查询本机的目录
get a.txt 下载文件
mirror pub 下载目录
网友评论