由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数
据,并且以空格符或回车符将 stdin 的数据分隔成为参数,另外许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决
注意:文件名或者是其他意义的名词内含有空格符的情况
单独使用xargs 是将键盘上的输入输出在屏幕上
xargs默认 是读取键盘输入在输出出来,把输入的东西 传给下一个命令作为参数
date查看当前系统时间
-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
%F 完整日期格式,等价于 %Y-%m-%d
% T 时间(24小时制)(hh:mm:ss)
-s 修改系统时间
?date -d '-1 day' +%F? ? ?前一天
date ?+%F? ? ?当前日期 yy-mm-dd(年月日)
date -d '1 day ' +%F-%T? ? ?后一天
?date -d "-3 day" ? ? ?前三天
?date -d "+3 day" ?后三天
?date -s "12:34:56"
/proc目录:内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出
/proc是虚拟文件夹,不存在磁盘中,而存在内存当中的
内核参数:
只读:只用于输出信息
可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
/proc/sys 设置
sysctl是一个允许改变正在运行中的Linux系统的接口,修改的是针对整个系统的内核参数。sysctl的修改是立即且临时的(重启后失效)。也可以通过修改sysctl.conf配置文件,达到永久生效
sysctl 命令用于查看或设定此目录中诸多参数
sysctl -w path.to.parameter=VALUE
默认配置文件:/etc/sysctl.conf 及以下文件
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
sysctl命令:
sysctl -a? ??查看所有生效参数
临时设置某参数? ? ?sysctl -w parameter=VALUE
通过读取配置文件设置参数? ??sysctl -p [/path/to/conf_file]
查看指定参数当前值? ?sysctl [/path/to/conf_file]?
内核调优:
net.ipv4.ip_forward
路由转发功能
net.ipv4.icmp_echo_ignore_all
禁止ping
net.ipv4.ip_nonlocal_bind ?
#允许应用程序可以监听本地不存在的IP
这个一定要开,大部分都是开着的
echo命令通过重定向方式也可以修改大多数参数的值
? ? ?echo "VALUE" > /proc/sys/path/to/parameter
临时修改内核参数:
临时修改内核参数:
#临时修改
[root@localhost ~]#sysctl -w net.ipv4.icmp_echo_ignore_all=0
#注意0前后不要有空格空格
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_all? ? ? ?禁止ping
vm.drop_caches? ? ?清除缓存
swap?
常用的内核参数:
net.ipv4.ip_forward
路由转发功能
net.ipv4.icmp_echo_ignore_all
禁止ping
net.ipv4.ip_nonlocal_bind ?
#允许应用程序可以监听本地不存在的IP
vm.drop_caches
#清除缓存
fs.file-max = 1020000 ? ? ? ? ?
#全局打开文件的最大数
vm.overcommit_memory = 0 ?
#0表示内核将检查是否有足够可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程。
#1表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
#2表示内核允许分配超过所有物理内存和交换空间总和的内存。
vm.swappiness = 10
#什么时候允许使用swap 剩余百分之10 可以使用
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#禁用IPv6
你做过那些内核调优?
开启路由转发功能,一定要开启
tcp连接数
开启禁ping?
……
范例:禁止ping
[root@localhost ~]#sysctl -a|grep icmp
net.ipv4.icmp_echo_ignore_all = 1
[root@localhost ~]#vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1
[root@localhost ~]#vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1
#删除上条记录无法恢复ping 读取配置文件是修改内存中的配置, 没有此条记录内存中还是保持原样
#临时修改
[root@localhost ~]#sysctl -w net.ipv4.icmp_echo_ignore_all=0
#注意0前后不要有空格空格
net.ipv4.icmp_echo_ignore_all = 0
#子配置
[root@centos7 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0
[root@centos7 ~]#vim /etc/sysctl.d/test.conf
#子配置文件
[root@centos7 ~]#cat /etc/sysctl.d/test.conf
#可以测试 删除此条配置查看是否可以ping通,
net.ipv4.icmp_echo_ignore_all=1
[root@centos7 ~]#sysctl -p /etc/sysctl.d/test.conf
net.ipv4.icmp_echo_ignore_all = 1
[root@centos8 ~]#cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1