shell脚本自增

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
#!/bin/sh
#本脚本测试shell脚本中整型变量自增 加1的几种方法

#定义整型变量
a=1
echo $a

#第一种整型变量自增方式
a=$(($a+1))
echo $a

#第二种整型变量自增方式
a=$[$a+1]
echo $a

#第三种整型变量自增方式
a=`expr $a + 1`
echo $a

#第四种整型变量自增方式
let a++
echo $a

#第五种整型变量自增方式
let a+=1
echo $a

#第六种整型变量自增方式
((a++))
echo $a

linux磁盘坏道的检测和修复

如何检测磁盘坏道

  1. 使用dmesg检查是否有关于磁盘错误的信息,果不其然发现大量磁盘扇区错误的信息,如下: end_request: I/O error, dev 03:06 (sda), sector

dmesg命令 被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg文件里。

Read More

python安装face_recognition和dlib

在是用机器学习的时候总会用到dlib库,万恶的win总是搞事情(虽然lin在其他地方也搞事情),废话不多说,下面是我的解决方法

使用Anaconda对python进行版本控制,说人话就是虚拟个环境,跟linux里的virtualenv差不多

安装最新版的Anaconda(也没得选,就这一个)

anaconda中内置了一个用来管理包的工具叫做: conda,类似python的pip,arch中的pacman.

Read More

docker容器启动失败

错误一

报错信息

docker:Error response from daemon:endpoint with name monitor already exists in network host.

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
38
39
40
41
42
43
44
45
46
47
48
49
# docker info

Client:
Debug Mode: false

Server:
Containers: 250
Running: 250
Paused: 0
Stopped: 0
Images: 5
Server Version: 19.03.8
Storage Driver: overlay2
Backing Filesystem: <unknown>
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 5.5.11-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 48
Total Memory: 125.9GiB
Name: d1a1e70b5f676226cb7ee2de95a79f79
ID: V64J:KRRC:C6OI:PR2F:BIKW:XF26:YGPE:O2FW:B6NE:XASJ:TQMM:FUA7
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false

Read More

CentOS7 出現 slice User 信息的解法

CentOS 7 的 /var/log/messages 系統紀錄內會大量出現 slice User 的訊息如下:

1
2
3
4
5
6
7
8
9
10
Aug 18 08:34:49 ct-squid systemd: Removed slice User Slice of root.
Aug 18 09:30:01 ct-squid systemd: Created slice User Slice of root.
Aug 18 09:30:01 ct-squid systemd: Started Session c616 of user root.
Aug 18 09:41:07 ct-squid systemd: Removed slice User Slice of root.
Aug 18 10:30:01 ct-squid systemd: Created slice User Slice of root.
Aug 18 10:30:01 ct-squid systemd: Started Session c617 of user root.
Aug 18 10:36:28 ct-squid systemd: Removed slice User Slice of root.
Aug 18 10:54:22 ct-squid systemd: Created slice User Slice of root.
Aug 18 10:54:22 ct-squid systemd: Started Session 33128 of user root.
Aug 18 10:54:22 ct-squid systemd-logind: New session 33128 of user root.

主要的原因是和 systemd 服務有關, 可以透過紀錄篩選規則設定, 來隱藏這些 slice User 訊息, 設定方式如下:

1
2
echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf
systemctl restart rsyslog

Read More

chattr与lsattr命令

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。
通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr
修改文件在Linux第二扩展文件系统(E2fs)上的特有属性
chattr [ -RVf ] [ -v version ] [ mode ] files…
[ mode ]部分是由+-=和[ ASacDdIijsTtu ]这些字符组合的,这部分是用来控制文件的
属性。

-R 递归地修改目录以及其下内容的属性. 如果在递归目录时遇到了符号链接,遍历将跳过
-V 详尽地给出chattr的输出信息并打印出程序的版本
-vversion 设置文件系统的版本

操作符+用来在文件已有属性的基础上增加选定的属性; -用来去掉文件上的选定的属性;而=用来指定该文件的唯一属性

Read More