经验分享:一个守护nginx进程的shell/bash脚本
这是一个用于监测nginx运行状态的脚本,当nginx运行异常被结束掉之后,脚本会自动尝试重启nginx进程。
脚本适用于某些不太稳定的Linux系统分支或者其他奇葩状况的环境。
….[阅读全文]
这是一个用于监测nginx运行状态的脚本,当nginx运行异常被结束掉之后,脚本会自动尝试重启nginx进程。
脚本适用于某些不太稳定的Linux系统分支或者其他奇葩状况的环境。
….[阅读全文]
top 命令 是每个人都在使用的用于 监控 Linux 系统性能的最好的命令。你可能已经知道
top
命令的绝大部分操作,除了很少的几个操作,如果我没错的话,批处理模式就是其中之一。大部分的脚本编写者和开发人员都知道这个,因为这个操作主要就是用来编写脚本。
如果你不了解这个,不用担心,我们将在这里介绍它。
什么是 top 命令的非交互模式
非交互模式允许你将 top
命令的输出发送至其他程序或者文件中。
在这个模式中,top
命令将不会接收输入并且持续运行,直到迭代次数达到你用 -n
选项指定的次数为止。
如果你想解决 Linux 服务器上的任何性能问题,你需要正 ….[阅读全文]
现在市面上流行的服务器面板大多数还是使用Apache架构的,例如VestaCP、ISPConfig、宝塔面板等,即使OneinStack、LNMP这两个有名的Nginx一键安装包也提供了LAMP模式,可以用于安装Apache建站环境。
今天再来分享一个Apache建站环境搭建的一键安装包LAMP.sh一键安装包,作者为teddysun,之前的三大免费工具助你检测VPS服务器真伪中一键测试VPS性能的脚本就是出自该作者之手,而且不少的朋友肯定还用过他的BBR一键安装包。
….[阅读全文]
Fork炸弹(Fork bomb)在计算机领域中是一种利用系统调用fork(或其他等效的方式)进行的阻断服务攻击。与病毒与蠕虫不同的是,fork炸弹没有传染性,而且fork炸弹会使有进程/程序限制的系统无法开起新工作阶段,对于不限制进程数的系统则使之停止回应(换句话来说,这是一种无限循环/死循环的方法)。
Fork炸弹以极快的速度创建大量进程(进程数呈以2为底数的指数增长趋势),并以此消耗系统分配予进程的可用空间使进程表饱和,而系统在进程表饱和后就无法运行新程序,除非进程表中的某一进程终止;但由于fork炸弹程序所创建的所有实例都会不断探测空缺的进程槽并尝试取用以创建新进程,因而即使在某进程终止后也基本不可能运行新进程。fork炸弹生成的子程序在消耗进程表空间的同时也会占用CPU和内存,从而导致系统与现有进程运行速度放缓,响应时间也会随之大幅增加,以致于无法正常完成任务,从而使系统的正常运作受到严重影响。
….[阅读全文]
把你的树莓派变成数据的安全之所。
在上一篇《树莓派自建 NAS 云盘-NFS篇》 文章中,我们讨论了建立 NAS 的一些基本步骤,添加了两块 1TB 的存储硬盘驱动(一个用于数据存储,一个用于数据备份),并且通过网络文件系统(NFS)将数据存储盘挂载到远程终端上。本文是此系列的第二篇文章,我们将探讨数据自动备份。数据自动备份保证了数据的安全,为硬件损坏后的数据恢复提供便利以及减少了文件误操作带来的不必要的麻烦。
….[阅读全文]
Shell Script与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
所以在Linux中编写shell/bash脚本使用穷举法破解10位以内纯数字密码的RAR加密压缩包成为可能。虽然破解速度一般,单线程破解,但shell/bash脚本中实用的思路可以值得借鉴参考。
….[阅读全文]
vim /root/backmydb.sh在打开的编辑器输入:
#!/bin/bash
mysqldump -uuser -ppasswd -B databasename > /root/backup/mysql/date_$(date ‘+%Y%m%d’).sql
命令的意思是用mysqldump导出名为databasename的数据库到/root/backup/mysql/文件夹并命名为date_当前日期.sql,-u后面的是你的Mysql的用户名,-p后面的是Mysql密码,databasename是要备份数据库名字,把这三个替换成自己的。
当然,备份的数据库比较大 ….[阅读全文]
如果是文件路径的进行字符截断可以用basename和dirname这两个工具
basename可以从一个文件路径中截一个文件名
$ basename /root/lnmp/lnmp_install.sh
lnmp_install.sh
dirname可以从一个文件路径中截到一个目录路径
$ dirname /root/lnmp/lnmp_install.sh
/root/lnmp
使用bash内部命令进行字符截断
bash有自带的功能来对变量进行字符截断,一般使用”#”, “##”, “%%”, “%”, “*” 组合来实现。
例子:
$ teststring=www. ….[阅读全文]
也许很多人认为shell不能并发任务,其实可通过其它一些方式来实现。下面的脚本是我批量快速管理500+服务器脚本,阅读该脚本前建议先看《自动执行远程主机命令expect脚本》、《自动远程拷贝expect脚本》和《getopt:命令行选项、参数处理》
用法:
Usage: ./multi_main.sh [-h|–help]
[-v|-V|–version]
[-l|–iplist … ]
[-c|–config … ]
[-t| ….[阅读全文]
1. 查看TCP连接状态
netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’ 或
netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”t”,state[key]}’
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”t” ….[阅读全文]