Linux Cheatsheet
我的linux
常用命令汇总。
iproute2工具替代net-tools工具集
- https://wiki.linuxfoundation.org/networking/iproute2
- http://www.policyrouting.org/iproute2.doc.html
- http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html
安装
yum install iproute2
用途 | net-tool(被淘汰) | iproute2 |
---|---|---|
地址和链路配置 | ifconfig | ip addr, ip link |
路由表 | route | ip route |
邻居 | arp | ip neigh |
VLAN | vconfig | Tip link |
隧道 | iptunnel | ip tunnel |
组播 | ipmaddr | ip maddr |
统计 | netstat | ss |
用法
ss -h
# 网络连接统计
ss -s
# 所有打开的端口
ss -lp
# 看所有的socket连接(tcp: -t, udp: -u, raw: -wa, unix: -xa)
ss -a
rsync文件同步
常用同步命令
rsync -rzva --delete --progress -e ssh root@xxx.com:/data /data/bak/bak01/
cpupower 调节cpu频率
参考:
- http://www.cnblogs.com/276815076/p/6477562.html
- https://www.cyberciti.biz/faq/debian-rhel-centos-redhat-suse-hotplug-cpu/linux-turn-on-off-cpu-core-commands/
关于cpu频率,目录在这里
/sys/devices/system/cpu/cpu23/cpufreq
调节主要用cpupower
cpupower frequency-info --policy # 看当前的策略
cpupower monitor # 看当前频率
cpupower frequency-set -g powersave # 设置为 节能模式
cpupower frequency-set -g performance # 设置为性能模式
cpupower help frequency-set # 看帮助
调节要看效果,一方面是节能,另一方面是降温:)
yum install lm_sensors
sensors-detect
sensors
关闭cpu
lscpu
echo 0 > /sys/devices/system/cpu/cpu3/online # 关
echo 1 > /sys/devices/system/cpu/cpu3/online # 开
写成批处理
for i in 3 15; do echo 0 > /sys/devices/system/cpu/cpu$i/online; done
for
循环 / if
分支
几个例子
文件遍历
for i in *.redis;do tar zcf $i.tgz $i --remove-files;done
值遍历
for i in 'a' 'b' 'c';do echo $i;done
文件内容遍历
while read p; do ./cassandra-loader -f /data/prd/DataExchange/$p.csv -host localhost -schema "xxx.xxx(xxx, xxx)" -delim "," -numThreads 20 done <mobile.list
数值遍历
for ((i=1;i<8;i++)); do echo $i done
关于if
,这个文章很好
加载ntfs
分区
yum install ntfs-3g
mount -t ntfs-3g /dev/sdb1 /mnt/win1
lvm
lvm
很好用。
这个文章不错:
http://blog.51cto.com/chrinux/1186700
lvm
的灾难恢复https://www.ibm.com/developerworks/cn/linux/l-cn-pclvm-rstr/index.html
鸟哥的
raid
与lvm
http://cn.linux.vbird.org/linux_basic/0420quota.php#snapshot_create
自动生成重复项
$ echo a{1,2,3,4}
a1 a2 a3 a4
关于cron.daily
看这里就明白了:
cat /etc/anacrontab
实际发生的在这里:
ls -l /var/spool/anacron/
有时候anacron
会工作不正常。比如该执行的任务没执行。这时可以控制台运行下看看卡在哪里。
$ anacron -d -t /etc/anacrontab -f -n
Anacron started on 2018-05-30
Job `cron.daily' locked by another anacron - skipping
Job `cron.weekly' locked by another anacron - skipping
Job `cron.monthly' locked by another anacron - skipping
Normal exit (0 jobs run)
看我这个就卡住了。
find 与 chmod 配合
find . -type d -exec chmod 777 {} \;
btrfs
- https://wiki.archlinux.org/index.php/Btrfs
- https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
- http://blog.163.com/digoal@126/blog/static/163877040201511595241838/
- https://mritd.me/2017/03/20/btrfs-note/
- https://btrfs.wiki.kernel.org/index.php/SysadminGuide
- http://blog.51cto.com/siyuan710/1699070
- https://blog.csdn.net/Michaelwubo/article/details/51773641
- https://juncaixinchi.github.io/Blogs/2017/07/05/Brtfs-Filesystem/
root分区挂掉
http://blog.51cto.com/oybw88/1369016
alternative 安装一个软件的多个版本
http://www.cnblogs.com/killkill/archive/2010/08/23/1806468.html
alternatives --install /usr/bin/java java /usr/share/java/8u171-b11/jdk1.8.0_171/bin/java 400
alternatives --display java
alternatives --config java
ssh 免密登录linux执行命令
# 自动生成 key
cat /dev/zero | ssh-keygen -q -N ''
# 机器互信
sshpass -p <pass> ssh-copy-id -i /root/.ssh/id_rsa root@<server>
sed -i '1i\StrictHostKeyChecking no' /root/.ssh/config
ssh -i <identity_file> <user>@<host> 'cmd'
ssh 保持连接
vi ~/.ssh/config
ServerAliveInterval 30
ps 的各种操作
# 内存占用排序
ps -eo pid,ppid,rss,%mem, %cpu, pmem,pcpu,vsize,args | sort -k 3 -r -n
硬盘检测
yum install smartmontools
smartctl -H <dev>
更新smartctl database
sudo /usr/sbin/update-smart-drivedb
awk 神器
https://coolshell.cn/articles/9070.html
http://wiki.bash-hackers.org/syntax/quoting
监控 io
- iotop
- pidstat
硬盘由ide
改为ahci
mkdir /boot/ahci
core=`uname -r`
mkinitrd --preload ahci /boot/ahci/initramfs-$core.img $core
xz 目录压缩
xz的压缩率极高。默认参数能压到1/3左右。
tar -cf - foo/ | xz -cT0 - > foo.tar.xz
或
XZ_OPT=-T09 tar cvvJf 1960.csv.aa.tar.xz.2 1960.csv.aa
# 这是移除文件
XZ_OPT=-T09 tar cvvJf 1960.csv.aa.tar.xz.2 --remove-files 1960.csv.aa
密码相关
创建密码
openssl passwd -1 -salt xyz yourpass
修改密码
echo "username:password" | chpasswd
在线增加硬盘
https://linoxide.com/linux-how-to/add-new-disk-centos-7-without-rebooting/
lvm / xfs格式
pvcreate /dev/sde
vgextend centos /dev/sde
lvextend -l +100%FREE /dev/mapper/centos-home
xfs_growfs /dev/mapper/centos-home
创建内存盘
mount -t ramfs none /ram
mount -t ramfs none /ram -o maxsize=2000 # 限定最大使用内存为2m的ramdisk
ntp对时
yum install ntpdate
ntpdate cn.pool.ntp.org
以上是手工对时。也可直接安装ntp,自动对时
yum install ntp
systemctl enable ntpd && systemctl start ntpd
注意看看crontab -l 中是否有对时任务
0 12 * * * /usr/sbin/ntpdate cn.pool.ntp.org
xfs shrink with lvm
mdadm
https://www.jianshu.com/p/5557b6172b97 http://blog.51cto.com/molinux/516008
hdparm
硬盘休眠
smartctl -i -n standby /dev/sdd # 查询休眠状态(不会唤醒硬盘)
hdparm -y /dev/sdd # 硬盘进入standby状态
设置自动休眠,参考这里:
https://wiki.archlinux.org/index.php/Udev
Centos 7 and Redhat 7 by defaults uses biosdevname rpm -qi biosdevname-0.5.0-10.el7.x86_64
换腾讯源
https://mirrors.cloud.tencent.com/help/centos.html https://cloud.tencent.com/document/product/213/8623
base
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
epel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
若是腾讯内网服务器,地址换为:
mirrors.tencentyun.com
电源管理
ssh安全
https://www.ibm.com/developerworks/cn/aix/library/au-sshlocks/index.html
Port 22960
LoginGraceTime 30
MaxAuthTries 3
Protocol 2
PermitRootLogin no
调试sshd慢的方法
systemctl stop sshd
/usr/sbin/sshd -d
这样就可以看sshd的日志了。
如果发现是慢在pam相关问题,则继续排查
/etc/pam.d/sshd
一行一行的注释,看看是哪个策略慢。
看是不是有人在攻击
tail -f /var/log/secure
如果有,就封ip
iptables -I INPUT -s 211.1.2.1 -j DROP
解封
iptables -L --line-numbers
iptables -D INPUT 1
用iptables封不太好。
可以用hosts.allow/hosts.deny来处理
https://www.cnblogs.com/panblack/p/secure_ssh_auto_block.html
端口扫描
sudo nmap -sS 192.168.1.1/32
Nmap scan report for 192.168.1.2
Host is up (0.0035s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
20/tcp filtered ftp-data
21/tcp filtered ftp
22/tcp filtered ssh
23/tcp open telnet
80/tcp open http
179/tcp filtered bgp
443/tcp open https
MAC Address: 68:A8:28:44:2D:D8 (Huawei Technologies)
selinux
getenforce
setenforce
vi /etc/selinux/config
SELINUX=disabled
sysctl 常用配置
vm.max_map_count=1048575 # 忘了
net.ipv4.ip_forward=1 # 允许端口转发
net.ipv6.conf.all.disable_ipv6 =1 # 禁ipv6
net.ipv6.conf.default.disable_ipv6 =1
生成随机密码
openssl rand -base64 15