前言
linux的一些小细节记录
1、tmp目录、var目录自动清理
tmp下的文件或目录长时间没有更新或者改动的话会被系统定期时间,配置参考如下:
1
|
vi /usr/lib/tmpfiles.d/tmp.conf
|
1
2
3
4
5
6
7
8
9
|
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 90d
v /var/tmp 1777 root root 90d
# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
|
2、tcp连接数统计
1
2
3
4
5
6
7
|
netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'
TIME_WAIT 1
FIN_WAIT2 1
ESTABLISHED 34
LAST_ACK 1
LISTEN 23
|
3、wget下载提示ssl错
1
|
wget --no-check-certificate -O brutexss.zip "http://files.cnblogs.com/files/Pitcoft/Brutexss(%E6%B1%89%E5%8C%96%E6%94%B9%E8%BF%9B).zip"
|
4、wget抓取网站
1
2
3
|
wget -m -e robots=off https://www.baidu.com
-m 是克隆整个网站
-e robots=off 是让wget忽视robots.txt
|
5、shell批量注释
<<'COMMENT'
...
COMMENT
举例如下:
1
2
3
4
5
6
7
8
|
#!/bin/bash
echo "Say Something"
<<COMMENT
your comment 1
comment 2
blah
COMMENT
echo "Do something else"
|
6、linux的proc
类型 |
说明 |
/dev/pts/x |
虚拟终端 |
/dev/ttySx |
串行控制端 |
/dev/ttyx |
控制台 |
/dev/console |
单用户控制台 |
7、ssh登录提示信息
类型 |
说明 |
/etc/motd |
用于登陆的提示信息 |
8、使用iptables模拟故障
使用 iptables 来模拟网络故障的时候,我们针对 Redis 写入进行处理。
简单来说就是在 Redis Server 端口 OUTPUT 的网络包分别进行 REJECT 和 DROP 操作。
1
2
|
sudo iptables -D OUTPUT -p tcp --destination-port 22368 -j REJECT
sudo iptables -D OUTPUT -p tcp --destination-port 22368 -j DROP
|
异常信息:
1
|
Caused by: java.net.SocketTimeoutException: connect timed out
|
9、tty、pts
10、base64
Linux下用base64命令加解密字符串
1
2
3
4
5
6
|
编码:
$ echo "Hello World" | base64
SGVsbG8gV29ybGQK
解码:
$ echo "SGVsbG8gV29ybGQK" | base64 -d
Hello World
|
mac:
1
2
3
4
5
6
|
编码:
echo "abc" | base64
YWJjCg==
解码:
echo "YWJjCg==" | base64 -D
abc
|
windows
1
2
3
4
5
6
|
编码:
certutil -encode 1.txt 2.txt
//将 1.txt 编码为 2.txt
解码:
certutil -decode 2.txt 3.txt
//将 2.txt 解码为 3.txt
|
注:
windows的base64编码是将1.txt的内容输出到2.txt,2.txt必须不存在由命令自己生成
base64解码是将刚才生成的2.txt的编码输出到3.txt,3.txt必须不存在由命令自己生成
windows的base64编码比标准的base64尾部数字有少许字符不同或者缺少
11、md5等摘要生成
linux:
1
2
|
echo -n "123456" | md5sum
e10adc3949ba59abbe56e057f20f883e
|
mac:
1
2
|
$ md5 -s "123456"
MD5 ("123456") = e10adc3949ba59abbe56e057f20f883e
|
其他摘要
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#生成32位散列字符串, 可以不带字符串
md5 -s "111111"
MD5 ("111111") = 96e79218965eb72c92a549dd5a330112
#生成40位SHA1散列字符串
echo -n "111111" | openssl sha1
3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d
#生成64位SHA256散列字符串
echo -n "111111" | openssl sha256
bcb15f821479b4d5772bd0ca866c00ad5f926e3580720659cc80d39c9d09802a
#生成128位SHA512散列字符串
echo -n "111111" | openssl sha512
b0412597dcea813655574dc54a5b74967cf85317f0332a2591be7953a016f8de56200eb37d5ba593b1e4aa27cea5ca27100f94dccd5b04bae5cadd4454dba67d
#32位HMAC md5字符串
echo -n "111111" | openssl dgst -md5 -hmac "key"
617673cb651cec1b48e88f24d8e4df8d
#40位hmac sha1字符串
echo -n "111111" | openssl sha1 -hmac "key"
1cda07ef7e4d03ec3c1bbddbc6f7f5f6aed7a8ce
#64位hmac sha256字符串
echo -n "111111" | openssl sha256 -hmac "key"
847b111693b519f01f26feee81c4a1b73cf2fe2bd8d5df913c4daa1ef0957809
#128位hmac sha512字符串
echo -n "111111" | openssl sha512 -hmac "key"
14b58f8452542bccc82fcabbd4ac268e9d3ce08dd054f0293097fbedfcc3afefcb6d0f1d3468a3926959d22fd67a595ec1c9b0c4b3f7f15cc34589cfad336273
#计算文件md5
md5 xx.txt
#计算文件sha1
openssl sha1 xx.txt
|
windows:
1
2
3
4
|
D:\>certutil -hashfile sensors-analytics-1.7.2676-centos6-standalone.tar MD5
MD5 哈希(文件 sensors-analytics-1.7.2676-centos6-standalone.tar):
f3 32 43 0f c5 97 15 2d 0e e4 51 48 2a c5 7f ab
CertUtil: -hashfile 命令成功完成。
|
注:
linux下的其他摘要跟mac的命令差不多
windows下没测试出字符串的方式,只能针对文件生成md5摘要
12、挖矿病毒二进制命令无法被删除
1
2
3
4
5
6
7
8
9
|
[root@kubernetes-master sbin]# lsattr scoutd
----i--------e-- scoutd
[root@kubernetes-master sbin]# chattr -i scoutd
[root@kubernetes-master sbin]# lsattr scoutd
-------------e-- scoutd
[root@kubernetes-master sbin]# rm scoutd
rm: remove regular file ‘scoutd’? y
[root@kubernetes-master sbin]# lsattr scoutd
lsattr: No such file or directory while trying to stat scoutd
|
12.1 文件属性介绍
属性 |
说明 |
A |
即Atime,告诉系统不要修改对这个文件的最后访问时间。 |
S |
即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。 |
a |
即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。 |
b |
不更新文件或目录的最后存取时间。 |
c |
将文件或目录压缩后存放。 |
d |
当dump程序执行时,该文件或目录不会被dump备份。 |
D |
检查压缩文件中的错误。 |
i |
即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。 |
s |
彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。 |
u |
当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。 |
t |
文件系统支持尾部合并(tail-merging)。 |
X |
可以直接访问压缩文件的内容。 |
12.2 参数介绍
参数 |
说明 |
-R |
递归处理,将指定目录下的所有文件及子目录一并处理。 |
-v<版本编号> |
设置文件或目录版本。 |
-V |
显示指令执行过程。 |
+<属性> |
开启文件或目录的该项属性。 |
-<属性> |
关闭文件或目录的该项属性。 |
=<属性> |
指定文件或目录的该项属性。 |