Linux定时执行任务crontab
crontab 常见的故障处理 常用操作启动停止服务 查看所有用户 crontab 配置全局配置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 指定用户执行。 配置文件在 /var/spool/cron 下 crontab 文件格式 特殊字符 符号 含义 * 代表每的意思,例如 month 字段如果是星号,则表示每月都执行该命令操作。 ...
Linux使用nologin用户执行命令
我们知道可以通过编辑 /etc/passwd 给某些用户设置 shell 为 nologin 或 false 可以阻止这些用户登录但某些时候需要特定的用户来执行命令,可以使用 sudo 或 su 来临时切换用户执行 使用 susu -s 是指定 shell,这里 www 用户默认 shell 是 nologin 这里指定使用 /bin/bash, -c 后面接需要运行的命令 使用 sudo使用 www 用户来执行 mkdir /tmp/111
守护进程工具supervisor
安装 配置文件 这个 directory 用处: 程序路径还是要用绝对路径,但是后面加的参数就可以生效了。 启动多个进程 numprocs=1 大于 1 个进程的时候:需要加上, 比如程序名 test,启动 3 个进程 常用操作重启 daemon 进程 重启服务 重启一组服务重启 test:801-803 重启所有 test 开头的服务 常见问题用 supervisor 守护 Prometheus 发现 Prometheus 经常报错 max open files , 但是操作系统已经将 open files 调整到非常高了。检查下来发现是 supervisor 主配置文件里面限制了 open files 数量 vim /etc/supervisord.conf 其中 minfds 是限制打开的文件描述符, 将值调大即可, 需要重启 supervisord 服务。
Nginx开启基本http认证
Nginx 使用 ngx_http_auth_basic_module 模块支持 HTTP 基本身份验证功能 nginx 配置比如需要/api 路径下的资源需要认证 配置密码文件.htpasswd两种方法二选一 使用 htpasswd 生成 生成密码, 密码文件为 .htpasswd 使用 openssl 生成 echo -n xxx 不打印换行符 openssl 生成的密码也可以用到 linux 的/etc/shadow 里面
Linux性能分析
vmstat 间隔 1s, 一共 5 次 每一列的说明 sar安装 查看物理网卡占用 sar -n 选项使用 6 个不同的开关:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6 和 UDP6 ,DEV 显示网络接口信息,EDEV 显示关于网络错误的统计数据,NFS 统计活动的 NFS 客户端的信息,NFSD 统计 NFS 服务器的信息,SOCK 显示套接字信息,ALL 显示所有 5 个开关。它们可以单独或者一起使用。1 表示 1 秒一次, 5 表示一共 5 次 查看 swap
Linux虚拟内存swap
增加 swap(文件)创建 swap生成一个空文件 标记成 swap 文件 手动挂载 swap 开机自动挂载vim /etc/fstab 添加一行 删除 swap(文件)查看 swap 文件地址 手动关闭 swap 删除 swap 文件 取消开机自动挂载vim /etc/fstab, 删除包含 swapfile 的一行 删除 swap(LVM 分区)判断是否是 LVM 分区LVM 分区做 swap,如果你用 centos7 默认安装的话, 就是用的 LV 做 swap,可以 cat /etc/fstab 和 lvdisplay 确认下 上图所示, 就是用的 lv 做 swap 分区 关闭 swap马上关闭: 修改配置永久关闭:vim /etc/fstab 删除包含 swap 的那一行 保守一点,如果 swap 占用空间不要了,lvm 也不动了,那么就到此为止就行。 删除 swap 的 LV 扩容剩下的 LV 动态增加磁盘大小 ext文件系统xfs文件系统RHEL在早期的 RHEL 中,由于 resize2fs 无在线 resize 功能,故额外提供...
Python环境打包
为什么要打包公司有个远古项目, 用到的是 fabric1.x, 只支持 python2 版本, 并且对环境要求比较苛刻, 而且代码已经无人维护, 这种情况下将包固定下来, 保证代码可以运行 安装 pyenv 环境 pyenv 官网 https://github.com/pyenv/pyenv,pyenv 和其他的虚拟环境不同之处在于它可以安装任意版本的 python 环境(源码编译)所以需要安装编译 python 的环境。 创建虚拟环境 安装 python2.7.18 的虚拟环境, 此环境只给 fabric 用, 所以就没有添加到环境变量, 以免影响其他 python 程序 使用虚拟环境安装需要的包 安装完成后在 /root/.pyenv/versions/2.7.18/bin 看到了 fab 可执行程序 创建软链接 这样 fab 的环境就准备好了, 后面只需要把 /root/.pyenv 打包分发给其他机器其实还可以使用 pyinstaller 打包, 不过我感觉没啥必要了.
Windows系统环境变量
环境变量简单来说就是一个键值对,比较常见的是 path 环境变量,定义的是全局程序存放的位置 Windows 查看环境变量 使用 echo %date% 用户环境变量注册表位置:HKEY_CURRENT_USER\Environment 用户环境变量只对当前用户起作用 系统环境变量注册表位置:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment 常用系统自带变量 变量 类似格式 %COMMONPROGRAMFILES% C:\Program Files\Common Files %COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files %PROGRAMFILES% C:\Program Files %PROGRAMFILES(X86)% C:\Program Files (x86) %COMSPEC% C:\Windows\System32\cmd.exe %HOMEDRIVE% C:...
linux磁盘扩容(非LVM)
LVM 是 Logical Volume Manager 的缩写,中文逻辑卷管理,LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,LVM 会更加灵活,可以动态扩容缩容分区大小。调整分区大小有风险,请做好充分测试再决定是否执行。如果启用了 lvm,请查看 LVM逻辑卷管理那么怎么知道机器有没有启用 LVM 呢,可以执行 sudo lvdisplay 查看有没有已存在的 LV,lsblk 查看现有的文件系统有没有 LVM 网上查到的方法都是使用 fdisk 删除分区后再重新创建, 这种方式会有安全问题, 而 growpart 命令是安全的. 扩容器查看容量大小 如果你要扩容的路径对应的 Filesystem 不是 /dev/sdx 请不要看这篇文章 先增加硬盘容量 需要 growpart 命令, 没有请安装 Ubuntu和DebianCentOS和Fedora 执行 growpart 命令 最后调整文件系统大小ext文件系统xfs文件系统RHEL在早期的 RHEL 中,由于 resize2fs 无在线 resize 功能,故额外提供了 ext2online。
zookeeper集群搭建
下载 Zookeeper 是为其他分布式程序提供服务的,所以本身自己不能随便就挂了,所以 zookeeper 自身的集群机制就很重要。zookeeper 的集群机制采用的是半数存活机制,也就是整个集群节点中有半数以上的节点存活,那么整个集群环境可用。这也就是说们的集群节点最好是奇数个节点。 创建配置文件 调整配置文件 /data/apache-zookeeper-3.8.4-bin/conf/zoo.cfg myid 配置除了修改 zoo.cfg 配置文件外,zookeeper 集群模式下还要配置一个 myid 文件,这个文件需要放在 dataDir 目录下这个文件里面有一个数据就是 A 的值(该 A 就是 zoo.cfg 文件中 server.A=B:C:D 中的 A),在 zoo.cfg 文件中配置的 dataDir 路径中创建 myid 文件。 不同服务器配置不一样 常用命令


