标签 linux 下的文章

内网两台linux的设备之间传大约100G的文件,以前的土法是win10上分别打开两台机的 SMB目录,然后复制黏贴。
得到的网速大约是 50M/s左右。

photo_2020-08-29_04-17-52.jpg

那么我在想,是不是因为经过我win中间转发上下行让速度折半了呢?
如果让两台linux直接对传,是不是速度会更接近千兆局域网的100M/s 理想速度呢?



- 阅读剩余部分 -

运行了几个python后台守护进程,需要重启的时候不能简单 killall python 很容易会误杀其他服务
所以备忘以下的脚本

已验证有效

#!/bin/sh

function PidFind()  
{
    PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;  

    if [ ${PIDCOUNT} -gt 1 ] ; then  
        echo "There are too many process contains name[$1]"  
    elif [ ${PIDCOUNT} -le 0 ] ; then  
        echo "No such process[$1]!"  
    else  
        PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;  
        echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";  

        echo "Kill the process $1 ...";          
        kill -9  ${PID};  
        echo "kill -9 ${PID} $1 done!";  
    fi  
}
#查找并kill掉 带有 newdoc.daemon 名称的进程
PidFind newdoc.daemon

#restart daemon
/path/to/startscript/chkdaemon.sh

当搜索结果不唯一时,脚本也会拒绝执行杀进程

参考文:https://jingyan.baidu.com/article/b7001fe1a5dbc40e7382dd75.html

按客户要求校正某些数据

要点备忘

数组

array_name=(item1 item2 ... itemN)
使用时 array_name[N]

循环

用到了 for 和 while,格式分别是

for [表达式];do
done

while [表达式];do
done

变量类型转换 string to int

有awk之类几种方法,我用了最偷懒的。
先确保字符串变量本身没有奇怪的字符,只有阿拉伯数字(参考下文lines)
在进行逻辑运算的关键位置用 $(()) 包裹变量声明为数值

随机读取若干行

随机读10行

shuf -n 10 input_filename






- 阅读剩余部分 -

作死警告!! 谨慎操作!

最近下载一个资源,资源组规避云盘的自动审核规则,把全部的 mp4文件 改名为 .mp 几百个文件需要一个个手改太败兴。备忘一下怎么处理

在win10,可以进用bash 当做ubuntu操作,美滋滋。

开始之前,再次

危险操作警告!未清楚参数命令效果与意义前不要模仿!注意再三检查执行的路径和影响范围

进入指定路径,执行以下指令

递归查找 .mp 文件重命名为 .mp4

find  . -name  '*.mp' -type f -print -exec mv {} {}4 \;

参数记忆:
-type f 只查找文件类型,忽略文件夹
-print 输出包含完整路径
-exec 把前面的结果 赋值给后面的变量 {} ,且执行后面的子命令,直到 \; 结束
语法解读:
查找当前路径下 所有的 *.mp ,对符合的【文件】执行 重命名为 "原文件名4" 的操作

批量删除 .tmp 文件

find  . -name  '*.tmp' -type f -print -exec rm {} -f \;