Articles of bash

unix恶意脚本/ ksh执行

我想知道我的架构是否构成安全风险。 细节: 整个网站不是ROOT所有,但仍然使用的APACHE用户有一些相当先进的权限。 我有一个文件夹“user_files”,可以容纳任何种类的用户文件。 例如,一个ksh unix文件。 我的php.ini禁用了exec phpfunction(以及其他一些敏感function) 我的问题很简单,但有两个方面: 有人可以执行上传的脚本? 风险的大小是多less? 如果这个脚本是由apache执行的,我猜它可以做的最大限度是删除服务器的所有apache拥有的文件,对吧?

在bash中源文件时转义特殊字符

我写了一个脚本来源bash shell片段。 shell片断应该是一种configuration文件,基本上它是一堆bashvariables。 这里的问题是当一些stringvariables包含应该被转义的字符。 因为他们不能逃脱,这个剧本可能会迟到或者有不受欢迎的行为。 目前,我的脚本正在validationshell碎片(configuration文件)bash语法( bash -n ),但是如果有任何字符要被转义,那么将不会被检测到。 所以,我想要自动转义敏感字符,或者,至less,检测他们是一些,所以我可以显示错误并退出。 任何想法我怎么能实现呢?

Crontab启动一个屏幕

我在crontab中用shell脚本启动了一个屏幕,当我进入屏幕时,左边变成了“ sh-4.1# ”。 当我直接修改脚本时,它是正常的“ [root @ localhost data] ”。 发生了什么? Shell脚本: #!/bin/bash cd /data scr_name="test" pid=`screen -ls | grep -w $scr_name` if [ -z "$pid" ]; then screen -dmS $scr_name fi 而crontab是: */1 * * * * /bin/bash -l /data/test.sh 注意:它在CENTOS5.5中工作,但不在CENTOS6.3中,现在我想在CENTOS6.3中运行它。

拆分具有特殊字符的数组元素

我想编写一个bash脚本(如果脚本是python的话,会更好),它执行一个Perl脚本( https://github.com/MangeshBiradar/Check_mk/blob/master/check_jenkins_jobs.pl )。 它是Perl脚本输出的输出: CRITICAL ~ First_run ~ Build stability: 3 out of the last 4 builds failed. ~ 25 CRITICAL ~ Mangesh_Testing ~ Build stability: All recent builds failed. ~ 0 CRITICAL ~ MKS_Integrity ~ Build stability: All recent builds failed. ~ 0 OK ~ MKS_TEST ~ Build stability: No recent builds failed. ~ […]

我想将使用Inotify抓取的事件或日志保存到文件中

我需要你的帮助 – 使用Inotify我正在看一个目录,如创build,删除,重命名和移动的变化。 我希望这些事件被logging在一个文件中,我想运行Inotify作为服务。

将输出redirect到尚不存在的子文件夹

我目前redirectcrontab脚本输出到文件存在的一些文件夹中,如下所示: echo "test" > `date "+/tmp/%Y%m%d_%H%M.log"` 我想redirect输出到子文件夹,也许还不存在( …/year/month/… ,所以应该创build子文件夹: echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"` 我怎样才能做到这一点?

xargs删除包含$的文件名

我正在使用xargs从远程服务器中删除文件。 xargs -a /var/log/del.log -i -exec ssh [email protected] 'rm -rf "{}"' del.log包含在本地服务器上删除的文件的path,我想在远程服务器上删除它们。 每一件事情都可以正常工作,但是当它们是一个像~$excel.xlsx文件命名办公室文件时,问题~$excel.xlsx当这样的文件命名出现时,xargs会使命令变得像这样。 ssh [email protected] 'rm -rf "~.xlxs"' – which is wrong, 它应该像 – ssh [email protected] 'rm -rf "~$excel.xlxs"' 为什么xargs是这样做的? 可能是xargs除了它是可变的。 我需要一些解决scheme。 还是有更好的方法来从远程服务器上删除文件? 只要本地服务器具有需要在远程删除的path列表。

Netcat输出pipe道,jsonparsing

我想要的是这样的: netcat到服务器,streamjson格式的loglines。 将nc的输出pipe道输出为“东西”,以某种可定制的格式(像Perl或Python这样的东西)来将json格式化为纯文本格式。 允许“某事”是可以理解的。 我将nc的输出pipe道输出到别的东西的小尝试导致服务器输出“Broken pipe”。

在VNC或RDP会话中启动Linux GUI应用程序以供以后访问

使用BASH脚本,我需要在启动时启动一个GUI应用程序,以便稍后可以通过RDP或VNC连接并查看应用程序的运行情况。 例如,脚本将在引导时运行,并启动给定的基于GUI的分析应用程序。 在任何时候,我都需要RDP / VNC来查看应用程序的进度并与之交互。 到目前为止,我在运行EC2的Ubuntu Server 12.04.1上使用LXDE。

Nagios检查 – 脚本

如果我硬编码的过程,我想find并运行脚本a 脚本A #!/bin/bash PROCESS=/System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co number=$(ps aux | grep $PROCESS | wc -l) if [ $number -le 1 ] then echo "Nope – This seems NOT to be Running" exit 2 else if [ $number -ge 2 ] then echo "This seems to be Running" exit 0 fi fi 剧本给了我我期待的答案。 如果我像这样运行脚本/System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co 即使我们把sakdjnsakjsakfndsdkjnf作为他们的争论,它总是会回来:“这似乎是跑步”? #!/bin/bash number=$(ps aux | […]