如何在Bash/Shell脚本非交互式(批处理)模式下运行top命令

Posted Posted in Shell脚本, 自动化

top 命令 是每个人都在使用的用于 监控 Linux 系统性能的最好的命令。你可能已经知道 top 命令的绝大部分操作,除了很少的几个操作,如果我没错的话,批处理模式就是其中之一。

大部分的脚本编写者和开发人员都知道这个,因为这个操作主要就是用来编写脚本。

如果你不了解这个,不用担心,我们将在这里介绍它。

什么是 top 命令的非交互模式
非交互模式允许你将 top 命令的输出发送至其他程序或者文件中。

在这个模式中,top 命令将不会接收输入并且持续运行,直到迭代次数达到你用 -n 选项指定的次数为止。

如果你想解决 Linux 服务器上的任何性能问题,你需要正 ….[阅读全文]

使用LAMP.sh一键安装包轻松搭建Apache环境:全自动安装SSL和PHP组件脚本

Posted Posted in Shell脚本, Web, 自动化, 运维

现在市面上流行的服务器面板大多数还是使用Apache架构的,例如VestaCP、ISPConfig、宝塔面板等,即使OneinStackLNMP这两个有名的Nginx一键安装包也提供了LAMP模式,可以用于安装Apache建站环境。

今天再来分享一个Apache建站环境搭建的一键安装包LAMP.sh一键安装包,作者为teddysun,之前的三大免费工具助你检测VPS服务器真伪中一键测试VPS性能的脚本就是出自该作者之手,而且不少的朋友肯定还用过他的BBR一键安装包。

….[阅读全文]

Bash/Shell脚本经典Fork死循环炸弹命令详解与演示以及防御方法

Posted Posted in Linux, Shell脚本, 系统, 自动化

Fork炸弹(Fork bomb)在计算机领域中是一种利用系统调用fork(或其他等效的方式)进行的阻断服务攻击。与病毒与蠕虫不同的是,fork炸弹没有传染性,而且fork炸弹会使有进程/程序限制的系统无法开起新工作阶段,对于不限制进程数的系统则使之停止回应(换句话来说,这是一种无限循环/死循环的方法)。

Fork炸弹以极快的速度创建大量进程(进程数呈以2为底数的指数增长趋势),并以此消耗系统分配予进程的可用空间使进程表饱和,而系统在进程表饱和后就无法运行新程序,除非进程表中的某一进程终止;但由于fork炸弹程序所创建的所有实例都会不断探测空缺的进程槽并尝试取用以创建新进程,因而即使在某进程终止后也基本不可能运行新进程。fork炸弹生成的子程序在消耗进程表空间的同时也会占用CPU和内存,从而导致系统与现有进程运行速度放缓,响应时间也会随之大幅增加,以致于无法正常完成任务,从而使系统的正常运作受到严重影响。

….[阅读全文]

树莓派搭建网络存储盘教程 自建会自动备份的树莓派NAS云盘(使用Rsync+Crontab篇)

Posted Posted in Linux, Shell脚本, 新玩意, 树莓派, 系统, 自动化

把你的树莓派变成数据的安全之所。

在上一篇《树莓派自建 NAS 云盘-NFS篇》 文章中,我们讨论了建立 NAS 的一些基本步骤,添加了两块 1TB 的存储硬盘驱动(一个用于数据存储,一个用于数据备份),并且通过网络文件系统(NFS)将数据存储盘挂载到远程终端上。本文是此系列的第二篇文章,我们将探讨数据自动备份。数据自动备份保证了数据的安全,为硬件损坏后的数据恢复提供便利以及减少了文件误操作带来的不必要的麻烦。

….[阅读全文]

分享一个使用穷举法免字典破解十位以内纯数字RAR加密压缩包的shell/bash脚本

Posted Posted in Shell脚本, 自动化

Shell Script与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

所以在Linux中编写shell/bash脚本使用穷举法破解10位以内纯数字密码的RAR加密压缩包成为可能。虽然破解速度一般,单线程破解,但shell/bash脚本中实用的思路可以值得借鉴参考。

….[阅读全文]

详谈Ansible的工作原理以及优势/使用Ansible实现网络自动化批量部署应用的实例

Posted Posted in Ansible, Playbook, 自动化, 运维

Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。这是一个无代理的、可扩展的配置管理系统。

….[阅读全文]

Erik_Xu浅谈开发模式及架构发展

Posted Posted in 云计算, 经验, 自动化, 菜鸟

一、传统开发模式
传统的开发模式基本一般是重服务端的开发方式,大部分工作都在服务端执行,然后返回到客户端(通常是HTML)。以Asp.net MVC为例,如下图:

 

#1 根据请求的路由定位到对应的Controller的对应的Action。

#2 执行相关逻辑,得到结果Model(也可能没有Model,如直接返回View)。

#3 定位并加载对应的View(也可能没有View,如返回TextResult,JsonResult等)。

#4 在服务端通过Razor引擎把Model和View绑定起来生成最终的返回结果(一般是HTML),返回到客户端 ….[阅读全文]

菜鸟入门:简单自动备份MYSQL数据库的Shell/Bash脚本

Posted Posted in Mysql, Shell脚本, 入门, 数据库, 自动化, 菜鸟

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是要备份数据库名字,把这三个替换成自己的。

当然,备份的数据库比较大 ….[阅读全文]

Shell/Bash脚本入门:String字符截断

Posted Posted in Shell脚本, 入门, 自动化, 菜鸟

如果是文件路径的进行字符截断可以用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. ….[阅读全文]