分享一个树莓派Wifi断线自动重连的Python脚本

Posted Posted in Python脚本, 新玩意, 树莓派, 自动化

某些情况下树莓派可能通过WiFi方式连接网络,但是网络信号可能不稳定,树莓派默认情况下一旦掉线是不会自动重连的。若想实现树莓派的 WiFi 断线自动重连功能,我们可以编写简单的 Python 代码用于监测网络是否断线,如果断线则重启网络服务。

….[阅读全文]

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

Posted Posted in Shell脚本, 自动化

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

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

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

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

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

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

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

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

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

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

….[阅读全文]

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

Posted Posted in Shell脚本, 自动化

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

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

….[阅读全文]

菜鸟入门:简单自动备份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. ….[阅读全文]

经验分享:并发批量管理500+台以上服务器shell/bash脚本分享(expect版)

Posted Posted in Shell脚本, 批量部署, 经验, 自动化, 菜鸟, 运维

也许很多人认为shell不能并发任务,其实可通过其它一些方式来实现。下面的脚本是我批量快速管理500+服务器脚本,阅读该脚本前建议先看《自动执行远程主机命令expect脚本》、《自动远程拷贝expect脚本》和《getopt:命令行选项、参数处理》

用法:
Usage: ./multi_main.sh [-h|–help]
[-v|-V|–version]
[-l|–iplist … ]
[-c|–config … ]
[-t| ….[阅读全文]

如何在shell/bash脚本中使用trap命令捕获信号

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

信号是LinuX系统中的一种进程间通信机制,它给应用程序提供一种异步的软件中断,使应用程序有机会接受其他程序活终端发送的命令(即信号)。应用程序收到信号后,有三种处理方式:忽略默认,或捕捉。进程收到一个信号后,会检查对该信号的处理机制。如果是SIG_IGN,就忽略该信号;如果是SIG_DFT,则会采用系统默认的处理动作,通常是终止进程或忽略该信号;如果给该信号指定了一个处理函数(捕捉),则会中断当前进程正在执行的任务,转而去执行该信号的处理函数,返回后再继续执行被中断的任务。 ….[阅读全文]

入门:Shell/Bash中的字符串基本处理操作(提取/替换/匹配/掐头/去尾)

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

字符串操作(长度,读取,替换)

表达式
含义

${string:position}
在$string中, 从位置$position开始提取子串

${string:position:length}
在$string中, 从位置$position开始提取长度为$length的子串

${string#substring}
从变量$string的开头, 删除最短匹配$substring的子串

${string##substring}
从变量$string的开头, 删除最长匹配$substring的子串

${string% ….[阅读全文]