Linux FAQ
Linux FAQ
如何删除名字特殊文件
通过inode号删除
|
|
curl
supervisor
supervisor通过http重启服务
刚开始看了文档没找到,后来想到,界面既然可以重启肯定有地址,所以看了果然可以
|
|
shell获取距1970年1月1日00:00的秒数,毫秒,纳秒数
这里要注意纳秒数不是date +%N,这个是获取具体的纳秒数,但是前面的s没带类似于3.5555
%N是5555而%s是3
|
|
linux使用命令行界面或者图形界面
debian10开机默认命令行需要如下,
grub修改,grub修改有两种办法和centos7比较类似,
a)修改/etc/default/grub 然后update-grub2
或者直接修改/boot/grub/grub.cfg(修改之前建议先备份)
一般建议修改/etc/default/grub(第一行是让用户登录时命令行login,第二行时grub选择系统界面为命令行)
GRUB_CMDLINE_LINUX_DEFAULT="quiet text"
GRUB_TERMINAL=console
b)改完以后执行update-grub2 这个时候去/boot/grub/grub.cfg检查是否cmd line增加了text,等开机了也检查下/proc/cmdline
c)然后设置多用户的配置
sudo systemctl set-default multi-user.target
如果要切回图形界面,
sudo systemctl set-default graphical.target
节点间copy断点续传
一般 建议用rsync, rsync -P xxx remote:xxx
允许用户登录
一般是把用户公钥追加到.ssh/authorized.keys即可 当然也可以使用ssh-copy-id -i xxx.pub 这里有个问题就是对于长这样的pub —- BEGIN SSH2 PUBLIC KEY —- —- END SSH2 PUBLIC KEY —- 需要通过ssh-keygen -f -i xxx.pub > xxx-new.pub 然后再进行后续,直接copy或者自己转化要去掉换行
samba linux配置和使用
debian类似yum provides的功能
|
|
sed捕获xxx='xxx'里面的字符串
sed -r "s/.*xxx='([^']*)'.*/\1/"
获取云主机的外网ip
网上有不少,看起来这个ipinfo.io正规一点
|
|
tcpdump pcap to text
tcpdump -A -r xxx.pcap
终端管理tmux使用
echo xxx > $file_name有时候可能无法生效,模糊的重定向
echo xxx | tee $file_name echo xxx | tee -a $file_name
挂载远程目录
使用sshfs
|
|
如果是网络延迟比较高实际体验并不好,如果国内网络或者内网肯定是没啥问题的,建议在服务器操作吧,
或者scp过去文件
grep -q
连环grep的时候注意grep -q通常不如你所想,建议使用一条grep,如果需要判断
ssh通过一台公网服务器实现跳转
|
|
确保你和xx.xx.xx.xx互通,xx.xx.xx.xx和10.0.200.12互通 ssh 10.0.200.12测试就好了
free里面的内存究竟是怎么对应的
debian12下
|
|
centos7.9下
|
|
我们发现 total=used+free+buff/cache 所有内存包含使用的,从未被使用的,可以被回收的(目前有缓存或者文件meta数据的)
available=total-used-shared这个和windows里面的方法比较像 可用的=所有的内存-WorkingSet-Shared
总结下:
- total = used + free + buff/cache
- available < free + buffer + cache 实际buffer和cache中有不可回收的内存, 除了Unclaimable还有一些
- buffer和cache都是缓冲区,buffer用于把文件meta等块信息放到缓冲用于加速打开文件,cache用于
把文件内存放到内存以加速访问文件数据
- swap是一块磁盘区域,用于在操作系统内存不足的时候,把一些buffer和cache数据换出方便其他程序使用
但是会增加磁盘io,也可能导致系统变慢,内存足够的场景需要关掉,一般我们线上是关掉的,尤其是db。
比较两个目录
|
|
什么是irq和irqbalance
irq
irq和irqbalance相关 irq是interrupts,中断
一般操作系统里面分为软中断和硬中断,硬中断是硬件发来的让cpu优先处理其请求,
比如键盘按下,打印机打印,鼠标移动等等,软中断比如cpu除以0触发等等,是软件相关的错误
软中断本质上是利用硬件中断的方式模拟中断通过异步实现更好地利用cpu。通过把中断分为上半部和下半部
上半部优先处理硬件相关、时间敏感的工作,而下半部通过内核线程处理剩下的工作
可以看下cat /proc/softirqs,有11种软中断类型,包含定时器,任务调度,网卡收发,RCU锁相关 一个很好的排查软中断的例子
linux里面把每个cpu的软中断线程标记为ksoftirqd/0等
从网上的例子看一般cpu 软中断高可能是网卡流量较高,具体可以通过检查ksoftirqd程序的占用有关
*注意*这里有个问题就是当我们是数据库等需要关闭NUMA的场景,其实我是希望尽量少的跨node进行交互的时候
那么最好是进行一些单独的irq设置,或者关闭irqbalance避免其均匀分配
irqbalance
irq balance是为了避免cpu出现负载过多的软件,适合多个核心的情况,
可以通过设置/etc/default/irqbalance文件配置忽略的cpu节点
ls的时候太慢
|
|
yum download only
|
|
curl如何自动redirect自动301跳转
|
|
更多curl的例子curl的例子
提示no matching host key type found. Their offer: ssh-rsa
下面的都试下
|
|
rsync from windows to linux
|
|
50873是远程rsync的端口,这里要注意的一点是
从windows到linux的rsync,如果默认不设置是会权限混乱的
解决办法是rsync服务器端要增加一些设置
|
|
rsync delete远程不一样目录的时候忽略目的文件
|
|
sudo报错sudo: no valid sudoers sources found, quitting
最近sudo报错,diff正确的和错误的时候发现所有都不一样,但是cat >是可以,
所以怀疑是编码问题,cat -A发现是^M的,解决办法是编辑器默认设置utf8,
服务器dos2unix下
常见的timestamp类型
https://help.sumologic.com/03Send-Data/Sources/04Reference-Information-for-Sources/Timestamps%2C-Time-Zones%2C-Time-Ranges%2C-and-Date-Formats
163源404
debian10 puppet安装的时候
|
|
换了aliyun的源
|
|
^M文本出现这种异常情况windows的换行
|
|
按照文件名字查询
|
|
找出什么时间之后的文件
|
|
查看系统中的大文件
|
|
查找对应文件目录的父目录
|
|
awk求和
awk '{sum+=$1} END{print sum}' xxx
crontab正常执行可以执行,实际执行失败
检查下是不是脚本里面没有使用绝对路径,或者/etc/crontab里面没有加环境变量
一般/usr/local/bin这种命令是没有的
监听文件或者文件夹的一种方式
inotify
systemd如何自动启动
|
|
操作完可以kill看看
申请免费证书
最近acme貌似有问题,用certbot正常,推荐
|
|
rpm cpio error
一般是rpm包没下完整,检查是不是wget了两次,那样包名字为xxx.rpm.1或者xxx.rpm.2
7z extract解压
p7zip
requests no proxy
|
|
nmap
检查ssl握手相关
|
|
openssl cert date
|
|
批量 check i是类似blog.liuliancao.com的
|
|
openssl certificate unable to get local issuer
|
|
火狐下载证书链文件 下完以后放到centos7机器的/etc/pki/ca-trust/source/anchors/ 然后服务器执行 update-ca-trust extract
curl -u如何转化成curl -H
|
|
awk统计tcp连接数量
|
|
curl查看各个解析的时间
|
|
配置logrotate
可以直接man logrotate,能看到各种例子
|
|
几个参数的含义
- compress nocompress
被滚动的老的日志是否被压缩
- create mode owner group, create owner group
创建文件的权限 属主
- hourly daily weekly monthly
每小时 每天 每周
- maxage maxsize
滚动的时候检查最大文件存在时间 如果超过这个时间就删除 滚动的时候检查最大文件大小 如果超过这个大小就删除 即使它没到指定的时间
- minsize
滚动的最小的大小 如果每超过 就不滚动
- missingok
文件不存在也接受,不会报错
logrotate加完可以自己测试下
|
|
sort分隔符号
|
|
arp扫描网段机器
|
|
find的时候忽略某个path
|
|
openssl req测试证书
压缩图片
|
|
合并两行
getline会进入下一行 此时 $0就是下一行的内容了,所以合并两行前保存一份
|
|
/etc/rc.local不执行
检查/etc/rc.d/local是否是可执行,如果不是chmod u+x /etc/rc.d/local
好用的u盘启动盘工具
refus https://rufus.ie/zh/ ventory https://www.ventoy.net/cn/index.html