小命令

小命令

September 24, 2023
小命令
小命令

前传: [[Make things easy and enjoyable]]

1. 递归删除某些文件 #

如以.py.bak 为结尾的文件: find . -name "*.py.bak" -exec rm {} \;

2. 批量杀死进程 #

pkill -f uwsgi
ps -axu | grep 关键字 | awk '{print $2}' | xargs kill

批量删除pod - xargs 的使用 #

kubectl get pod -n argo | grep workflow-template | awk '{print $1}' | xargs kubectl -n argo delete pod

3. MySQL NOW #

指定东八:update scanner_device set update_time = CONVERT_TZ(NOW(), @@session.time_zone, "+08:00");

4. celery worker状态 #

celery -A ncelery status

 ->  celery@scan-celery.rcmrestat.00: OK
->  celery@scan-celery.vulcombine.00: OK
->  celery@scan-celery.rcmstat.00: OK

5. base64解码 #

echo YWRtaW46bnNmMGN1cy5Aazhz | base64 -d 使用场景: 如在USER/.docker/config寻找到docker登陆凭证可以用此解码后login登录

6. k8s 复制文件 #

kubectl cp -n websafe -c master-fizz-daemon master-fizz-daemon-66c89f7c9c-nlgd4:rcm_vul_info.json rcm_vul_info.json

7. 查看k8s DNS解析 #

kubectl get configmap -n kube-system coredns -o yaml

8. 关闭WSL2 #

#停止LxssManager服务:
net stop LxssManager
#启动LxssManager服务:
net start LxssManager

9. nginx 代理 mongodb #

FROM nginx

RUN echo "stream {\n    upstream stream_mongo {\n        server mongo:27017;\n    }\n\n    server {\n        listen 9876;\n        proxy_pass stream_mongo;\n    }\n}" >> /etc/nginx/nginx.conf
docker build -t nginx-proxy:v0 .
docker run -p 12345:9876 --network websafe-network --name nginx-proxy nginx-proxy:v0
# 连接 12345 即可

10. MySQL删除锁修改表 #

SHOW PROCESSLIST;
KILL 6261330;
-- 根据表所在的库名找见ID,然后删除锁
LOCK TABLES task WRITE;
ALTER TABLE task ADD COLUMN module_id INT not null DEFAULT 1005 COMMENT '这里是SQL字段注释';
UNLOCK TABLES;

11. rz sz 上传下载服务器小文件 #

  • 安装命令: apt install lrzsz
  • 下载 sz xxx
  • 上传 rz

12. 并行下发命令 #

time parallel -N0 -j10 "argo submit success.yaml -n argo" ::: {1..100}

使用 -N 限制每行参数的个数,其中-N0表示一次只读取一个参数,且不输入这个参数(作为计数器来使用)。

parallel -N4 echo 1={1} 2={2} 3={3} ::: A B C D E F G H
1=A 2=B 3=C // D传入了,但没接收所以下一行丢失
1=E 2=F 3=G
parallel -N0 echo foo ::: 1 2 3
foo
foo
foo

如果要打印计数,可以使用time parallel -N1 -j10 "echo '[$(date)] 第 {}:次提交中...' & ls" ::: {1..10}或者不指定N1默认就是N1

13. ffmpeg 提取视频中音频 #

ffmpeg -i englishdemo.mp4 -vn -c:a copy english.aac

提取并转换为mp3格式 #

ffmpeg -i englishdemo.mp4 -vn -b:a 128k -c:a mp3 english.mp3

14. Windows 休眠 #

cmd 管理员模式运行

powercfg.exe -h off
powercfg.exe -h on

15. Windows刷新DNS缓存 - 修改hosts之后不生效使用 #

ipconfig /flushdns

16. 解压当前目录所有压缩文件 #

for f in *.zip; do unzip "$f"; done

17. 通过IP获取主机名 #

不过看情况,如果没有启动NetBIOS就查不到

# 基於TCP/IP上的NetBIOS客戶用於查詢NetBIOS名字的程序
nmblookup -A {IP}

18. awk算数 #

grep 400586 sched.log.2024-05-28 | grep 条 | awk '{print $8}' | awk -F'条,' '{sum += $1} END {print sum}'
  • awk -F'条,' '{sum += $1} END {print sum}'进行分割取$1第一个进行sum求和计算
  • awk '{print $8}' 这里注意使用单引号

250

原日志数据为:

2024-05-28 18:15:51 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 1条, 0 is: 400586 + 2024-05-28 05:24:52 + MY
2024-05-28 18:49:20 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 3条, 0 is: 400586 + 2024-05-28 03:02:38 + MY
2024-05-28 18:59:50 sched WARNING [1178]: await self.redis.enqueue_update_db(*update_tasks) 4条, 0 is: 400586 + 2024-05-28 04:12:04 + MY

19. 使用git commit信息来命名 #

# 时间
echo "{name}-$(git log -1 --format=%cd --date=format:'%Y%m%d-%H%M%S').tar.gz"
# commit_id+时间
echo "name-$(git log -1 --format=%h)-$(date +'%Y%m%d-%H%M%S').tar.gz"

20. 查看设备温度 #

sudo apt install lm-sensors
sensors

21. 压缩视频 #

ffmpeg -i 原视频.mp4 -c:v libx264 -b:v 2000k -c:a aac -b:a 128k -pix_fmt yuv420p -movflags faststart 输出视频.mp4

22. 连接命令 #

sl && ls 
sl; ls

1中sl失败后不会执行后续的ls, 2中sl失败后也会执行ls

23. 查看文件占用 #

fuser -v {file path}

24. 查看文件大小及排序 #

du -sh ~/go/pkg/mod/github.com/* | sort -rh | head