linux技巧合集
发表于|更新于
|总字数:753|阅读时长:3分钟|浏览量:
linux技巧合集
最大20个文件
1
| du -h / | sort -rh | head -20
|
1
| find / -type f -exec du -sb {} + | awk '{ size_gb = $1 / (1024*1024*1024); printf "%.2fGB\t%s\n", size_gb, $2 }' | sort -nr | head -n 20
|
快速命令
查看去掉注释和空行
1
| grep -Ev '^\s*($|#|;)' example.conf
|
单行改密码
1
| echo <passwd> | passwd root --stdin
|
删除30天前文件
1
| find /data/app/tmp -mtime +30 -name "*.flv" -exec rm -Rf {} \;
|
关闭swap
1
| sed -ri 's/.*swap.*/#&/' /etc/fstab && swapoff -a
|
随机密码
1
| PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
|
当前目录修改字符串
1
| for file in $(ls); do sed -i 's/nmg/sz/g' "$file"; done
|
Docker Build构建使用http代理
1
| docker build --build-arg https_proxy=127.0.0.1:8088
|
yum保存rpm
1 2 3 4 5 6 7 8 9
| yum install yum-utils -y
# 保存主软件包 yumdownloader telnet
# 保存主软件包和所有依赖 repotrack telnet
yum localinstall telnet.rpm
|
htpasswd 密码
1 2 3 4 5 6 7 8 9
| USERNAME=muen-admin; PASSWORD=$(base64 < /dev/urandom | head -c16); echo "USERNAME:$USERNAME,PASSWORD:$PASSWORD";docker run --rm \ --entrypoint htpasswd \ httpd:alpine \ -mbn $USERNAME $PASSWORD > nginx.htpasswd
# -mbn Force MD5 encryption # -Bbn Force bcrypt encryption
|
ssh代理
原生ssh
没必要用到frp的时候,或者需要双保险的时候,可以用到ssh代理
会监听22
端口
注:远程机器上如果/etc/ssh/sshd_config
的GatewayPorts
的值不是yes
则远程机器只会监听127.0.0.1
,只能本机访问
1 2 3
| ssh -NfL remote_port:localhost:local_port user@remote_server
ssh -NfL *:16000:192.168.1.1:3020 [email protected]
|
自动重连
-M
后面传0
就是随机在远程主机上32768-65535
开一个端口来监听,如果传自定义值就是指定端口监听
::: tip
注:还是会监听22
端口
:::
1 2 3
| yum install -y autossh
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NfR *:11000:172.168.1.1:6061 [email protected]
|
docker清理
清理镜像
显示当前占用磁盘空间的 Docker 资源
清理构建缓存
删除未被使用的容器、网络和数据卷等其他资源
rsync断点续传
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/bin/bash
cmd_status=1 while [ ${cmd_status} != 0 ]; do # rsync -rP -e "ssh -i /root/test.pem" /data/app/ 192.168.1.1:/data/app/ # 1M/s # yum install nc -y # apt install -y netcat-openbsd # 老版本 nc -x # rsync -rP --bwlimit=1024 --rsh="ssh -o ProxyCommand='nc -x x.x.x.x:44066 %h %p'" ${des_dir}/ root@${ip}:${src_dir}/${sync_file} # 新版本 nc --proxy-type socks5 --proxy ${ip}:${port} # rsync -rP --bwlimit=1024 --rsh="ssh -o ProxyCommand='nc --proxy-type socks5 --proxy-auth username:password --proxy x.x.x.x:44066 %h %p'" ${des_dir}/ root@${ip}:${src_dir}/${sync_file} rsync -rP --bwlimit=1024 --rsh="ssh" /data/baksvn/20200906 [email protected]:/data/baksvn/ cmd_status=$? done
|
:::tip
如果要使用其他用户传输: rsync -e 'ssh -l <user>'
:::
代理相关
curl
使用代理
脚本格式
1 2
| find . -wholename "*.sh" -exec dos2unix {} \;
|
测试相关
测速
1 2
| yum install -y epel-release yum install -y iperf3
|
1 2 3 4 5 6 7 8
|
iperf3 -s
iperf3 -c <server_ip>
iperf3 -c <server_ip> -R
|