Tomcat启动shell脚本

Tomcat启动shell脚本,使用之前修改下面2个参数:

tomcat启动、停止、重启,如下图:

脚本内容如下:

 

0

RabbitMQ的shell启动脚本

copy过去修改部分参数即可用。

RabbitMQ的shell启动脚本

 

0

Shell脚本去除空行的方法总结

Shell脚本去除空行的方法有很多,这边总结了4种方法,分别是使用tr命令、sed命令、awk命令、grep命令等4种命令实现。

有时我们在处理和查看文件时,经常会有很多空行,为了美观或是有需要时,就有必要把这些除行去掉了,方法如下:

1)用tr命令

2)用sed命令

3)用awk命令

4)用grep命令

Shell脚本去除空行的方法总结结束了,希望对大家有帮助。

 

+1

shell脚本实现进度条以及应用场景

使用shell脚本实现进度条加入到shell脚本当中,可以使shell脚本更好看、美观。

普通进度条

shell脚本实现进度条以及应用场景

shell 脚本实现进度条1
shell 脚本实现进度条1

倍数为5 (jinshu=$i* )$i乘以几倍数就是几

调整倍数后需调整  (“#?”代表要调整的参数)

带loading和特殊颜色的进度条


shell 脚本实现进度条2
shell 脚本实现进度条2

label是我们定义的数组,它用来交替显示{“\”,”|”,”/”,”-“} 这四个字符中的一个,由于“\”在Linux中含有特殊含义,所以需要用两个“\”,一个起转义作用。

index用来记录当前进度,从0-100,每次使str=str+”#”,while循环每次输出str,进度,及label中的字符。

以下为常用的颜色代号:

改变进度形状


shell 脚本实现进度条3
shell 脚本实现进度条3

shell进度条使用场景

进度条可以用到执行比较危险操作的shell脚本中

提示用户 如果不想执行 可在进度条出按ctrl+c结束脚本

因为 在进度条跑的过程中是不会执行下面的代码的

也可以设置执行的任务和进度条代码一起执行

总结

shell脚本实现进度条以及应用场景介绍完了,shell编程进度条不是必须的,但确是能优化体验的。

+1

python脚本与shell脚本的区别比较

python脚本与shell脚本的区别比较

shell脚本特性

shell 应该属于宏语言,顾名思义是系统的壳,方便与系统交互的。

shell 简单,开发迅速,专注系统(比如:Linux)管理领域。

shell就是和系统结合得比较紧密,其内部数据处理方面,侧重文本(或者说字符串,或字符流)处理,而对运算和其他基本数据结构的原生较弱。

下面这几种情况下,不应该使用shell,因为shell对此无能为力;

如:跨平台,较复杂数学操作(如浮点运算,精确运算等),图形化界面 GUI,I/O 或socket 接口,多维数组,对效率要求很高等。

python脚本特性

python 属于通用脚本语言,功能强大,跨平台(比如:Windows和Linux),严谨。

Python可以调用图形库,可以直接做网络应用,甚至直接嵌入其它语言,跨平台。

如果写了超过100行的shell脚本,应该考虑使用Python重写。

如果有复杂的的对象,请使用Python。

总结

shell是用来进行系统管理的脚本,能力有限,多半用于自动化任务,并不是系统级的编程语言。python是系统级的编程语言,也就是说,你用python能干你想干的几乎所有事情。

好,python脚本与shell脚本的区别比较介绍完毕。

0

shell脚本while do的使用介绍

前言

和java语言一样,中也有 while 循环。shell脚本while do的使用介绍,当条件满足时,while 重复地执行一组语句,当条件不满足时,就退出 while 循环。

Shell while 循环语法

语法解释

  • condition:判断条件
  • statements:要执行的语句,可以是一条,也可以是多条

注意:do和done都是 Shell 中的关键字。

while 循环的执行流程

1.先对 condition 进行判断,如果该条件成立,就进入循环,执行 while 循环体中的语句,也就是 do 和 done 之间的语句。这样就完成了一次循环。
2.每次执行到 done 的时候都会重新判断 condition 是否成立,如果成立,就进入下一次循环,继续执行 do 和 done 之间的语句,若不成立,则结束整个 while 循环,执行 done 后面的其它 Shell 代码。
3.若刚开始 condition 就不成立,则程序就不会进入循环体,do 和 done 之间的语句就不会执行。

注意:在 while 循环体中必须有相应的语句使得 condition 越来越趋近于“不成立”,只有这样才能最终退出循环,否则 while 就成了死循环,会一直执行下去,永无休止。

while 语句和 if else 语句中的 condition 用法都是一样的,你可以使用 test 或 [] 命令,也可以使用 (()) 或 [[]]。

while 循环示例

计算从 1 加到 100 的和。

运行结果:

The sum is: 5050

总结

shell脚本while do的使用介绍就结束了,其实只要你掌握了任何一种编程语言,立马就能知道shell脚本while do该如何使用了。

+1

恶意shell脚本攻击的方法与预防策略

前言

网络安全对于互联网从业者而言,一直是一个重要的、绕不开的话题,PowerShell可以给运维人员带来极大的方便,但同时也是被攻击者盯上的重灾区。想想就非常可怕,攻击的人只要能从远程执行shell脚本,就能执行一些敏感的安全操作,比如篡改重要数据,修改安全配置等。所以我们有必要掌握一些恶意shell脚本攻击的方法与预防策略。

PowerShell攻击方法

PowerShell攻击方法一般分为两方面:

一方面是攻击者利用系统漏洞向用户终端释放恶意的PowerShell脚本。

另一方面是攻击者通过发送钓鱼邮件等方式诱导用户下载和运行恶意PowerShell脚本。

尽管PowerShell提供了相应的安全机制,但是攻击者还是可以通过N种方法绕过这些机制进行攻击。针对“执行策略”对运行脚本文件的限制,攻击者可诱导用户关闭这一限制,或通过参数设置等方法绕过该限制,而由于脚本文件大多为纯文本形式,攻击者可以很容易地对脚本的内容进行编码、混淆,使其绕过AMSI机制的检测,也绕过用户肉眼的识别。

PowerShell攻击实例

以输出“Hello World”为例,咱们来看看几种常见的绕过“执行策略”、对代码进行编码和混淆的方法。

为了便于介绍,我们首先创建一个脚本文件,内容为“write-host’HelloWorld’”,保存在D:\test.ps1。如果用户在该文件的图标上点击右键,选择“使用PowerShell运行”,是可以作为主动执行的方式运行该脚本文件的。如果在PowerShell命令行中直接输入上述内容,同样可以运行,如图1的①所示。但是,受“执行策略”的限制,在PowerShell命令行中无法直接运行该脚本文件,如图1 的②所示。然而,如果通过Get-Content方法读取文件内容,再将内容通过管道作为PowerShell的输入,则可绕过这一限制,如图1的③所示。

 

图1  在Pow erShell中执行命令
图1  在Pow erShell中执行命令

即使用户依然将“命令提示符”作为默认的命令行环境,也同样可以调用PowerShell来执行脚本文件和命令。例如:(1)可以通过临时修改“执行策略”的方式运行脚本文件;(2)可以将图1在PowerShell中执行命令经过Base64编码后的命令直接解码执行;(3)可以从网络直接下载脚本文件并执行;(4)经过内容混淆的命令依然可以执行。上述事例分别如图2的①~④所示。

图2  在传统的“命令提示符”中执行Pow erShell命令
图2  在传统的“命令提示符”中执行Pow erShell命令

此外,PowerShell的很多安全机制需要3.0或更高的版本才能支持。然而,由于兼容性等原因,系统中可能同时存在多个版本的PowerShell。在高、低版本共存的环境下,即使默认使用的是高版本,攻击者也可能通过命令行参数调用低版本PowerShell,发起“降级攻击”,从而绕过某些安全机制。

需要说明的是,PowerShell脚本的执行权限和当前用户的权限是一致的。如当前用户具有系统管理员权限,且未通过Windows内的用户账户控制(UserAccountControl,UAC)进行必要的防护,则以该用户权限执行的PowerShell脚本就可能对系统造成非常大的危害。但是,即使当前用户是普通用户,通过PowerShell脚本也能够窃取该用户有权访问的所有文件,包括其工作文件和私人文件等。

PowerShell攻击的防御策略

在Windows 7及更高版本的系统中,PowerShell是内置组件,无法直接卸载。为了降低PowerShell攻击的风险隐患,提高系统的安全性,可采取以下措施。

  1. 升级PowerShell 到更新版本。在命令行中运行“Get-Host”即可查看当前PowerShell的版本号。为使用PowerShell内置的安全特性,建议升级到5.0 以上版本。
  2. 检查是否存在旧版本。由于PowerShell支持多版本并存,即使已安装高版本,也应当在命令行中尝试运行形如“PowerShell.exe -version 2 Get-Host”的命令,判断系统中是否依然存在较低版本的PowerShell,避免“降级攻击”。
  3. 检查“执行策略”是否已设置为“Restricted”。如果不是,可通过“Set-ExecutionPolicy Restricted”命令进行设置。
  4. 限制PowerShell的语言模式。如仅需保留PowerShell最基本的运行环境,不需要调用.Net 框架的类库,则可限制PowerShell支持的语言种类。具体做法是,首先在系统的环境变量中添加名为“__PSLockdownPolicy”的变量,取值为“4”;然后可以在PowerShell命令行中输入“$ExecutionContext.SessionState.LanguageMode” 进行验证,如返回结果由“FullLanguage” 变为“ConstrainedLanguage”,则表明语言模式修改成功。此时,大部分恶意程序都会因无法调用.Net 框架的类库而无法正常运行,从而不会对系统造成显著破坏。
  5. 安装杀毒软件并定期升级。一些杀毒软件能够检测PowerShell 脚本文件的恶意特征,有的还能够在执行PowerShell 脚本文件时发现其恶意行为,这也有助于防范恶意PowerShell 脚本的运行。
  6. 对于Windows XP系统,由于PowerShell是可选组件,如在日常工作中确实无需使用PowerShell的,还可通过控制面板中的“添加/删除程序”功能卸载该组件。

总结

了解了恶意shell脚本攻击的方法与预防策略后,我们在享受PowerShell带来的便利同时,更要加强警惕,不让攻击者有漏洞可钻。同时,我们也应该意识到个人使用网络的良好习惯养成的重要性。要做到不访问来路不明的网站、邮件及其附件,不运行可疑的程序和脚本文件,定期更新杀毒软件和系统补丁,防止PowerShell恶意脚本的植入和运行。

 

+1