linux_bash_script
Created At :
Views 👀 :
Linux Bash Script
标签(空格分隔): Linux Bash Script 脚本 shell
这里收集用过的短脚本,
日期遍历
1 2 3 4 5 6 7 8
| s="2016-11-07" e="`date -d "366 day ago" +"%Y-%m-%d"`"
c="$s" while [[ "$c" < "$e" ]]; do echo "$c" c=`date -d "$c +1 day" +"%Y-%m-%d"` done
|
https://vpsyou.com/iftop/
- nethogs: 按进程查看流量占用;
- iptraf: 按连接/端口查看流量;
- ifstat: 按设备查看流量;
- ethtool: 诊断工具;
- tcpdump: 抓包工具;
- ss: 连接查看工具;
- 其他: dstat, slurm, nload, bmon.
1 2 3 4 5 6 7 8 9 10 11
| yum search epel yum install epel.* -y yum install iftop -y iftop -i eth1 iftop -i eth1 -B -F 182.92.***.20 iftop -i eth0 -P -N sudo iftop -i eth0 -NPb 进入界面后按 t t t 切换流量,仅输入,仅输出。。。 按1,2,3按右边3列排序 按q退出 按h帮助
|
- 找到流量最大进程的网络端口
- 网络端口找进程
- 进程找任务
P 显示端口,N 以数字方式显示端口
nethogs 使用
1 2 3 4
| yum install nethogs sudo nethogs -h : prints this help. nethogs -d 2 -s -c 10 -v 3
|
ab POST 请求
1
| ab -c 200 -n 1000 -T 'application/x-www-form-urlencoded' -p postdata.txt http://domain/test.php
|
postdata.txt
uid=9832&id=5&uname=shitou&uhash=a5aafa2f5ddddddd5c106a4b85c2b4b527&lid=-1&online_hash=0&zone=480&tfrm=0&txt_b=0&txt_i=0&txt_c=999
su nologin user
对2个文件求交并差
1 2 3 4 5
| comm -13 <(sort file1) <(sort file2) -13 表示不要第1列和第三列,也就是保留第2列。 1: a-b 2: b-a 3: a交b
|
求每一行的MD5值
注意-n参数,必须,否则算MD5值时会包含换换行
1
| head -n 2 h.1.log | while read line; do echo -n $line|md5sum|awk '{print $1}'; done
|
上面每行都会启动一组进程计算md5,非常低效。
sort 高级用法,多列混合排序
1
| sort -t $'\t' -k 1n,1 -k 2n,2 -k4rn,4 -k3,3 <my-file>
|
-t $’\t’:指定TAB为分隔符
-k 1, 1: 按照第一列的值进行排序,如果只有一个1的话,相当于告诉sort从第一列开始直接到行尾排列
n:代表是数字顺序,默认情况下市字典序,如10<2
r: reverse 逆序排列,默认情况下市正序排列
从用户那里获取一个输入
1 2
| read -p "是否继续:yN" yesOrNo echo "你的选择:${yesOrNo}"
|
设置主机名
此修改可以重启后仍然有效。因为修改了静态主机名。
1 2 3 4
| hostnamectl hostnamectl set-hostname qqmm
只查看静态、瞬态或灵活主机名,分别使用--static,--transient或--pretty选项
|
用脚本修改crontab
1 2 3 4 5 6 7 8 9
| (crontab -l 2>/dev/null; echo "*/5 * * * * /path/to/job -with args") | crontab -
(crontab -l 2>/dev/null; echo "3 0 * * * sudo rm -f /var/crash/*/vmcore") | crontab -
alldo \(crontab -l 2\>/dev/null\; echo "3 0 * * * sudo rm -f /var/crash/*/vmcore"\) \| crontab -
onedo node110 \(crontab -l 2\>/dev/null\; echo "3 0 * * * sudo rm -f /var/crash/*/vmcore"\) \| crontab -
|
用echo输出到错误流
文件的真实完整路径
查看网卡流量
查看网卡信息
并发执行
1 2
| need_har.list.txt 是命令,每行一个完整命令 cat need_har.list.txt |parallel -j 10 --pipe -N 1 sh
|
如果:sudo: sorry, you must have a tty to run sudo
1 2 3 4
| sudo visudo 或者 sudo vim /etc/sudoers 注释掉第56行的: Defaults requiretty
|
oom killer 停止
http://blog.51yip.com/nosql/1776.html
1,修改内核参数,3种方法,任选其一:
(1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效
(2)sysctl vm.overcommit_memory=1
(3)echo 1 > /proc/sys/vm/overcommit_memory
手动释放swap
1.首先我们停掉swap分区,查看swap分区
swapon -s 会查看到你的swap分区是挂载位置
2.停止是需要一段时间的,SWAP内存将释放到实际内存当中
swapoff /dev/sda2 //此目录是swap分区目录
3.启动我们的swap分区,swap分区内存已经成功释放到了实际内存中
swapon -a
看本机出口ip
1 2 3 4 5 6
| curl ipinfo.io curl cip.cc curl ifconfig.me curl myip.ipip.net
printf `curl -s 119.147.226.73/ip;curl -s 183.239.207.73/ip;curl -s 221.5.10.198/ip` |grep -o "[[:digit:].]\+"
|
输出为3行记录,分别为:电信 移动 联通三线出口ip
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com