0%

2019年11月15日 下午12:18

Linux netstat命令详解 - ggjucheng - 博客园
从整体上看,netstat的输出结果可以分为两个部分:

  1. 一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
  2. 另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
    1. Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
  1. 列出所有 tcp 端口
    • netstat -at
  2. 只显示监听端口
    • netstat -l
  3. 只列出所有监听 tcp 端口
    • netstat -lt
  4. netstat 将每隔一秒输出网络信息
    • netstat -c
  5. 显示核心路由信息
    • netstat -r
  6. 找出程序运行的端口
    • netstat -ap | grep ssh
  7. 找出运行在指定端口的进程 :判断服务有没有起来
    • netstat -an | grep ':80'
    • netstat -plten | grep ':80'

分析access.log获得访问前10位的ip地址
awk ‘{print $1}’ access.log |sort|uniq -c|sort -nr|head -10

2019年11月14日 下午10:45

  • 各种评价评价指标都已Overlap为基础
  • 只不过分类方式不同:eg:EAO是以视频的长短分类

VOT(Visual Object Tracking)评价指标综述
目标跟踪的评价指标(OTB与VOT)

  • 该tracker在长度Ns序列上的EAO值。之后在其他长度的序列上测EAO,就可以得到一条EAO曲线,横坐标为序列长度,纵坐标为EAO值
  • 重新定义的Robustness还可以叫做reliability,可以解释为“上一次跟踪失败后能够持续跟踪S帧的概率”(文中原话)
  • IoU(Intersection-over-Union,交并比)
  • EAO(Expected Average Overlap)这个评价指标只针对基于overlap定义的accuracy
  • Robustness用来评价tracker跟踪目标的稳定性,数值越大,稳定性越差
    • 定义F(i,k)F(i,k)F(i,k)为第i个tracker在第k次重复中failure的次数。

2019年11月12日 下午5:31
Linux rsync环境搭建(非ROOT搭建)
手动安装m4, autoconf, automake, libtool

  • 这篇文章中的版本太老,安装inotify会出错,下面的shell我已更新到了合适的版本

需要备份的一端:

auto_install_inotify_rsync.sh
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
50
51
52
53
54
# 共需修改一项
# 1.声明绝对地址
ab_path=/home/chenzhiheng18/
chmod 777 ~/installed

# 下载地址:https://blog.csdn.net/tanningzhong/article/details/90034371
# 安装rsync
cd ~/software_install/rsync
tar xvzf rsync-3.1.3.tar.gz
cd rsync-3.1.3
./configure --prefix=$ab_path"installed/"
make && make install

# 设置密码
cd ~/installed/
echo "123123" > rsync.passwd
chmod 600 rsync.passwd

# 下载地址:https://blog.csdn.net/qq_30549833/article/details/72955881
# 安装m4
cd ~/software_install/rsync_depend
tar -xzvf m4-1.4.13.tar.gz
cd ~/software_install/rsync_depend/m4-1.4.13
./configure --prefix=$ab_path"installed/"
make && make install

# 安装autoconf
cd ~/software_install/rsync_depend
tar -xzvf autoconf-2.65.tar.gz
cd ~/software_install/rsync_depend/autoconf-2.65
./configure --prefix=$ab_path"installed/"
make && make install

# 安装automake
cd ~/software_install/rsync_depend
tar xzvf automake-1.16.tar.gz
cd ~/software_install/rsync_depend/automake-1.16
./configure --prefix=$ab_path"installed/"
make && make install

# 安装libtool
cd ~/software_install/rsync_depend
tar xzvf libtool-2.4.6.tar.gz
cd ~/software_install/rsync_depend/libtool-2.4.6
./configure --prefix=$ab_path"installed/"
make && make install

# 安装inotify
cd ~/software_install/rsync
tar xvzf inotify-tools-3.20.1.tar.gz
cd inotify-tools-3.20.1
./autogen.sh
./configure --prefix=$ab_path"installed"
make && make install
rsync.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

# 1.当前用户地址
ab_path=/home/chenzhiheng18/
# 2.目标地址
user_host="chenzhiheng18@124.16.75.227"
# 3.需要备份的目录
src=/home/chenzhiheng18/tmp/

des=web
$ab_path"installed/bin/inotifywait" -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read files
do
/usr/bin/rsync --port=30001 -vzrtopg --delete --progress --password-file=$ab_path"installed/rsync.passwd" $src $user_host::$des
echo "${files} was rsynced" >>$ab_path"rsync.log" 2>&1
done

注:chmod 764 rsync.sh

备份到的服务器

auto_install_rsync.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 绝对地址
ab_path=/home/chenzhiheng18/
chmod 777 ~/installed

# 安装rsync
cd ~/software_install/rsync
tar xvzf rsync-3.1.3.tar.gz
cd rsync-3.1.3
./configure --prefix=$ab_path"installed/"
make && make install

# 备份服务器需要账户和密码: 这里的路径必须手动更改
user_name=chenzhiheng18
ab_path="/home/"$user_name"/"
cd ~/installed
echo $user_name":123123" > rsync.passwd
chmod 600 rsync.passwd
rsync.conf :是文件 不是shell

文件中需要指明:

  1. 用户绝对路径:用于 pid lock log secrets
  2. port :端口
  3. path:接受文件的文件夹
  4. hosts allow :允许的传送方的ip
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 建立rsync.conf配置文件,保存到installed/bin/目录
    use chroot = no
    max connections = 10
    strict modes = yes
    pid file = /home/chenzhiheng18/run/rsyncd.pid
    lock file = /home/chenzhiheng18/run/rsync.lock
    log file = /home/chenzhiheng18/logs/rsyncd.log
    port = 30001
    [web]
    path = /home/chenzhiheng18/tmp/
    comment = web file
    ignore errors
    read only = no
    write only = no
    hosts allow = 124.16.75.219
    hosts deny = *
    list = false
    #auth users = webuser
    secrets file = /home/chenzhiheng18/installed/rsync.passwd
启动rsync
1
2
# 启动rsync
$ab_path"installed/bin/rsync" --daemon --config=$ab_path"installed/bin/rsync.conf"

其他注意事项:

1
2
3
4
5
6
7
# 复制make install 的输出
/bin/mkdir -p /home/chenzhiheng18/installed/bin
/usr/bin/install -c -m 755 rsync /home/chenzhiheng18/installed/bin
/bin/mkdir -p /home/chenzhiheng18/installed/share/man/man1
/bin/mkdir -p /home/chenzhiheng18/installed/share/man/man5
if test -f rsync.1; then /usr/bin/install -c -m 644 rsync.1 /home/chenzhiheng18/installed/share/man/man1; fi
if test -f rsyncd.conf.5; then /usr/bin/install -c -m 644 rsyncd.conf.5 /home/chenzhiheng18/installed/share/man/man5; fi

2019年11月11日 下午8:10
linux 如何清理僵尸进程-毛虫臭臭-51CTO博客

僵尸进程如何产生的?

  1. 如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了。那么我们说一个进程终止之后,还保留哪些信息?为什么终止之后还需要保留这些信息呢?
  2. 一个进程终止的方法很多,进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程在终止时,回收所有内核分配给它的内存、关闭它打开的所有文件等等,但是还会保留以上极少的信息,以供父进程使用。父进程可以使用 wait/waitpid 等系统调用来为子进程收拾,做一些收尾工作。
  3. 因此,一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行直至其终止,它立即从内存中移除,但进程描述符仍然保留在内存中(进程描述符占有极少的内存空间)。子进程的状态变成EXIT_ZOMBIE,并且向父进程发送SIGCHLD 信号,父进程此时应该调用 wait() 系统调用来获取子进程的退出状态以及其它的信息。在 wait 调用之后,僵尸进程就完全从内存中移除。因此一个僵尸存在于其终止到父进程调用 wait 等函数这个时间的间隙,一般很快就消失,但如果编程不合理,父进程从不调用 wait 等系统调用来收集僵尸进程,那么这些进程会一直存在内存中。

清理僵尸进程:

  1. cut版
    • ps -e -o ppid,stat | grep Z | cut -d” ” -f1 | xargs kill -9
  2. awk版
    • kill -HUP ’ps -A -ostat,ppid | grep -e ‘^[Zz]’ | awk ‘{print $2}’’

其他:清理ps aux | grep par_crop.py| awk '{print$2}' | xargs kill -9

2019年11月11日 下午8:04

  1. 显示指定用户信息
    1. ps -u root
  2. 列出目前所有的正在内存当中的程序
    1. ps aux
  3. 显示所有进程信息,连带命令行
    1. ps -ef
    2. 包括瞬时不在内存中的,长的不得了!
  4. 查询python进程的进程号
    1. ps -fA | grep python

2019年11月10日 下午5:13

pstree

linux每日命令(34):ps命令和pstree命令 - 听风。 - 博客园
注:显示当前用户的进程树

ps

ps命令使用详解 - 一生守候 - 博客园

  • USER:该进程属于那个使用者账号的?
  • PID :该进程的进程ID号。
  • %CPU:该进程使用掉的 CPU 资源百分比;
  • %MEM:该进程所占用的物理内存百分比;
  • VSZ :该进程使用掉的虚拟内存量 (Kbytes)
  • RSS :该进程占用的固定的内存量 (Kbytes)
  • TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
  • STAT:该程序目前的状态,主要的状态有:
    • R :该程序目前正在运作,或者是可被运作;
    • S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。
    • T :该程序目前正在侦测或者是停止了;
    • Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  • START:该进程被触发启动的时间;
  • TIME :该进程实际使用 CPU 运作的时间。
  • COMMAND:该程序的实际指令为什么?

2019年11月11日 下午7:51

Linux iostat命令详解 - 小a玖拾柒 - 博客园

  • 如果%iowait的值过高,表示硬盘存在I/O瓶颈
  • 如果%idle值高,表示CPU较空闲
  • 如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
  • 如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU

iostat -m -x 1

  • m:兆
  • x:详细
  • 1:秒

2019年11月11日 下午5:38

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
# 进入文件夹
ab_path="/home/chenzhiheng18/"
mkdir ~/installed

# 安装tcl
cd ~/software_install/expect
tar xzvf tcl8.6.8-src.tar.gz
cd tcl8.6.8/unix
./configure --prefix=$ab_path"installed"
make && make install

echo "安装完毕tcl"

# 安装expect
cd ~/software_install/expect
tar xzvf expect_5.45.4.orig.tar.gz
cd expect5.45.4
./configure --prefix=$ab_path"installed" --with-tcl=$ab_path"installed/lib" --with-x=no
make && make install


echo "export PATH=\"$ab_path""installed/bin:\$PATH\"" >> ~/.bashrc
source ~/.bashrc
echo "安装完毕expect"

# 测试
echo "测试"
expect

2019年11月11日 下午4:29
Linux服务器重启后IP变掉的处理方式 - Zoe_yan - 博客园
  工作中有一台服务器为物理机,重启后IP就变掉了,影响到了使用,于是将服务器上的IP配置为静态方式,问题得以解决,具体如下:

  1. 1.登陆Linux服务器,cd _etc_sysconfig/network-script(文件夹名字可能略有不同)
  2. 2.找到对应网卡的IP地址的配置文件,vim ifcfg-enp2s0
  3. 3.修改文件中的BOOTPROTO为static,并且在配置文件末尾追加如下四项:
    1. IPADDR=XXX.XXX.XXX.XXX(需要静态化的IPv4地址)
    2. GATEWAY=XXX.XXX.XXX.XXX(网关信息)
    3. NETMASK=XXX.XXX.XXX.XXX(子网掩码)
    4. BROADCAST=XXX.XXX.XXX.XXX(子网广播地址)
  4. 保存修改(该文件一般为只读的,若无法保存,修改权限信息再保存)
  5. 重启网络配置:service network restart

2019年11月10日 下午9:54

PyTorch学习笔记(10)——上采样和PixelShuffle

  1. 上采样,在深度学习框架中,可以简单的理解为任何可以让你的图像变成更高分辨率的技术
  2. Deconvolution(反卷积)在CNN中常用于表示一种反向卷积 ,但它并不是一个完全符合数学规定的反卷积操作。
    1. PixelShuffle
  3. Unpooling不同,使用反卷积来对图像进行上采样是可以习得
    1. Upsample

Pytorch卷积和反卷积的计算公式

  1. torch.nn.Conv2d
    • 如果输入大小为W * W,那么输出大小: (W_−_kernel_size + 2*padding )/stride+1
  2. torch.nn.ConvTranspose2d
    • 如果输入大小为W * W,那么输出大小: (W - 1) * stride + output_padding - 2 * padding + kernel_size