小命令
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