Linux定时执行任务crontab
常用操作启动停止服务12systemctl start cronsystemctl stop cron
查看所有用户crontab1cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
配置全局配置crontab在/etc目录下面存在cron.hourly、cron.daily、cron.weekly、cron.monthly、cron.d五个目录, 这些相当于快捷方式, 直接将你的脚本扔进去就可以和crontab、cron.deny二个文件。
目录
作用
cron.daily
每天执行
cron.weekly
每周执行
cron.monthly
每月执行
cron.hourly
每小时执行
crontab
系统级任务, 在这里面调用了上面几个
用户配置文件直接使用crontab -e 编辑就行, -e使用的编辑器可以通过select-editor来指定或者使用crontab -u www-data -e 指定用户执行。
配置文件在 ...
Linux使用nologin用户执行命令
我们知道可以通过编辑/etc/passwd给某些用户设置shell为nologin或false可以阻止这些用户登录但某些时候需要特定的用户来执行命令,可以使用sudo或su来临时切换用户执行
使用susu -s 是指定shell,这里www用户默认shell是nologin这里指定使用/bin/bash, -c 后面接需要运行的命令
1su www -s /bin/bash -c "mkdir /tmp/111"
使用sudo使用www用户来执行mkdir /tmp/111
1sudo -u www mkdir /tmp/111
Nginx开启基本http认证
Nginx 使用 ngx_http_auth_basic_module 模块支持 HTTP基本身份验证功能
nginx配置比如需要/api路径下的资源需要认证
1234location ^~ /api { auth_basic "authentication"; auth_basic_user_file conf.d/.htpasswd;}
配置密码文件.htpasswd两种方法二选一
使用htpasswd生成12345# Ubuntu or Debianapt install apache2-utils# Rhel or CentOS:yum install httpd-tools
生成密码, 密码文件为.htpasswd
1htpasswd -bcd .htpasswd username password
使用openssl生成
echo -n xxx不打印换行符
123echo -n 'username:' >> .htpasswdopenssl passwd -1 p ...
Linux性能分析
vmstat
间隔1s, 一共5次
1vmstat 1 5
每一列的说明
1234567891011121314151617181920212223242526Procs(进程):- r: 运行队列中进程数量- b: 等待IO的进程数量Memory(内存):- swpd: 使用虚拟内存大小- free: 可用内存大小- buff: 用作缓冲的内存大小- cache: 用作缓存的内存大小Swap:- si: 每秒从交换区写到内存的大小- so: 每秒写入交换区的内存大小- IO:(现在的Linux版本块的大小为1024bytes)- bi: 每秒读取的块数- bo: 每秒写入的块数system:- in: 每秒中断数,包括时钟中断- cs: 每秒上下文切换数CPU(以百分比表示)- us: 用户进程执行时间(user time)- sy: 系统进程执行时间(system time)- id: 空闲时间(包括IO等待时间)- wa: 等待IO时间
sar安装1yum install sysstat
查看物理网卡占用1sar -n DEV 1 5
sar -n 选项使用6个不同 ...
Linux虚拟内存swap
增加swap(文件)创建swap生成一个空文件(2048M)
12sudo dd if=/dev/zero of=/swapfile bs=1M count=2048sudo chmod 600 /swapfile
标记成swap文件
1sudo mkswap /swapfile
手动挂载swap12345挂载: sudo swapon /swapfile卸载: sudo swapoff /swapfile
开机自动挂载vim /etc/fstab添加一行
1/swapfile swap swap defaults 0 0
删除swap(文件)查看swap文件地址1swapon
手动关闭swap1sudo swapoff /swapfile
删除swap文件1sudo rm -f /swapfile
取消开机自动挂载vim /etc/fstab, 删除包含swapfile的一行
Python环境打包
为什么要打包公司有个远古项目, 用到的是fabric1.x, 只支持python2版本, 并且对环境要求比较苛刻, 而且代码已经无人维护, 这种情况下将包固定下来, 保证代码可以运行
安装pyenv环境
pyenv官网 https://github.com/pyenv/pyenv,pyenv和其他的虚拟环境不同之处在于它可以安装任意版本的python环境(源码编译)所以需要安装编译python的环境。
12yum install -y git zlib zlib-devel libffi-devel openssl openssl-devel readline-devel bzip2-devel sqlite-develcurl https://pyenv.run | bash
创建虚拟环境
安装python2.7.18的虚拟环境, 此环境只给fabric用, 所以就没有添加到环境变量, 以免影响其他python程序
123yum install sqlite-devel bzip2-devel readline-devel/root/.pyenv/bin/pyenv insta ...
linux磁盘扩容(非LVM)
LVM是Logical Volume Manager的缩写,中文逻辑卷管理,LVM是建立在磁盘分区和文件系统之间的一个逻辑层,LVM会更加灵活,可以动态扩容缩容分区大小。调整分区大小有风险,请做好充分测试再决定是否执行。如果启用了lvm,请查看LVM逻辑卷管理那么怎么知道机器有没有启用LVM呢,可以执行sudo lvdisplay查看有没有已存在的LV,lsblk查看现有的文件系统有没有LVM
网上查到的方法都是使用fdisk删除分区后再重新创建, 这种方式会有安全问题, 而growpart命令是安全的.
扩容器查看容量大小123[root@elk4 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vdb1 985G 165G 770G 18% /data
如果你要扩容的路径对应的Filesystem不是/dev/sdx请不要看这篇文章
先增加硬盘容量
需要growpart命令, 没有请安装
Ubuntu和DebianCentOS和Fedora1sudo apt install c ...
LVM逻辑卷管理
LVM是Logical Volume Manager的缩写,中文逻辑卷管理,LVM是建立在磁盘分区和文件系统之间的一个逻辑层,LVM会更加灵活,可以动态扩容缩容分区大小。调整分区大小有风险,请做好充分测试再决定是否执行。如果没有启用lvm,请查看linux磁盘扩容 - 非LVM那么怎么知道机器有没有启用LVM呢,可以执行sudo lvdisplay查看有没有已存在的LV,对比df -hT里面的Filesystem,也可以用lsblk查看有没有lvm。
LVM 的一些概念PV: 物理卷,比如一个分区,一个磁盘VG: 卷组,将多个PV整合在一起,形成一个大的池子LV: 逻辑卷,从VG划分出来一个个空间,可以当作分区来看待,可以格式化,可以挂载
常用命令
查看
扩展
创建
vgdisplay(vgs)
vgextend
vgcreate
lvdisplay(lvs)
lvextend
lvcreate
pvdisplay(pvs)
–
pvcreate
扩容文件系统物理扩容
虚拟机扩容就是扩容虚拟磁盘,物理机扩容比如可以增加硬盘。
创建新的PV扩展现 ...
git常用操作记录
配置文件查看GIT本地配置1git config --list
编辑git配置文件1git config --global --edit
设置GIT用户信息12git config --global user.name "zhanglikun"git config --global user.email "iuxt@qq.com"
git记住密码1git config --global credential.helper store
配置文件~/.gitconfig内容12345[user] name = zhanglikun email = iuxt@qq.com[credential] helper = store
忽略追踪文件权限
建议windows代码使用
1git config core.filemode false
分支管理
命令
作用
git branch -a
查看所有分支
git branch -r
查看远程分支
git fetch
更新索引
git ...
Linux平台文本编辑器vim
替换文本123:%s#原文本#替换后的文本#g:%s/原文本/替换后的文本/g:%s@原文本@替换后的文本@g
匹配删除删除包含特定字符的行
12:g/pattern/d # 全局范围内:1,20g/pattern/d # 删除1~20行内匹配的行
删除以#开头的注释
1g/^#/d
删除空行
1g/^\s*$/d
删除#后面的行
1g/#.*/d
删除不匹配的行
12:v/pattern/d:g!/pattern/d
patton里面可以是正则表达式,比如说 ^10.104
每一行最后添加一个字符1:%s/$/,/
用sudo打开1:w !sudo tee %
常用快捷键
快捷键
说明
i
在当前光标之前插入
a
在当前光标之后插入
I
在当前行 最前面插入
o
在下方新建一行, 然后插入
O
在上方新建一行, 然后插入kao
G
跳到最后面
gg
跳到最前面
$
跳到行尾
^
跳到行首
v
多选
ctrl v
块选
V
行选
yy
复制一行
p
在光标后粘贴
...