Articles of 脚本

你通常在哪里保持你的UNIX / Linux脚本?

有很多我为我的服务器写的脚本。 其中一些在我的~/scripts ,其中一些在应用程序目录中。 我只是想知道是否有一个目录,你通常会用来保持你的shell脚本?

pipe理域中所有机器的本地pipe理员密码更改的行业标准方法是什么?

虽然似乎有三种可用的选项,其中一种实际上是安全的,但似乎只有两种可用的select,能够影响在更改时尚未启动的机器,或者是移动的而不在networking上的机器在变化的时候。 两者似乎都不是一个安全的select。 我知道的三个选项是: 用.vbs启动脚本 GPO使用组策略首选项 Powershell脚本作为计划任务。 我忽略了Powershell选项,因为我不知道如何有效地进行目标/迭代,并且closures已经更改的机器,networking上的所有机器以及对不必要的networking开销有什么影响,尽pipe这可能是最好的解决scheme因为密码本身可以存储在CipherSafe.NET(第三方解决scheme)容器中,并将密码传递给目标机器的脚本。 我还没有检查过Powershell是否可以从脚本中使用本地Windows机器的Credential Manager获取密码,或者是否可以在其中存储密码以便与脚本一起使用。 .vbs脚本选项是不安全的,因为密码以明文forms存储在networking上任何域计算机可用的SYSVOL共享中。 任何想要find后门,只要有一点Google的人都会发现,如果持续下去的话。 GPO选项也是不安全的,如MSDN注: http : //code.msdn.microsoft.com/Solution-for-management-of-ae44e789 我正在寻找一个非第三方的解决scheme,我认为这应该是可用的或能够在正确的知识或指导下在内部开发。

你是如何在你的服务器上实现日志pipe理的?

我试图弄清楚其他人如何实现他们的日志pipe理系统。 我有20-30个Linux服务器和几个Windows(其中大部分是虚拟化的)。 我们利用大量的Perl和Bash脚本来完成我们大部分的自动化工作,并且试图将日志logging标准化。 我一直在寻找log4perl和log4sh来logging脚本和syslog-ng,以便在一个集中的日志logging服务器上获取所有的日志。 我也读过splunk,虽然听起来像企业版是非常昂贵的,我可能会超过免费许可限制与我所有的服务器。 我见过其他工具,如swatch和logcheck,但我不太清楚所有这些部分是如何组合在一起的…任何build议将不胜感激!

在没有root密码的cron作业中使用mysqldump

如果我在我的盒子上用root密码login,我可以简单地input mysqldump –all-databases,我会得到期望的“转储”。 我在cron.daily中设置了一个工作来运行并将其转储到备份驱动器。 我有的问题是,虽然用户正在以root身份运行,我得到以下消息 mysqldump:有错误:1045:访问被拒绝用户'root'@'localhost'(使用密码:否) 当试图连接。 我不想在脚本中硬编码MySQL数据库的根密码(谁会)。 考虑到我可以在我的bash shell的命令行中input“mysqldump”,必须有一些方法来解决使用-u参数的问题。我已经在脚本的顶部有#!/ bin / bash了。 我在这里错过什么来获得这个不要求数据库的根密码?

对从tld开始并向左工作的域名(FQDN)进行sorting

我正在寻找从TLD开始并向上工作的域名列表(网页filter白名单)。 我正在寻找任何* nix或Windows工具,可以很容易地做到这一点,虽然脚本也可以。 所以如果是你给的名单 www.activityvillage.co.uk ajax.googleapis.com akhet.co.uk alchemy.l8r.pl au.af.mil bbc.co.uk bensguide.gpo.gov chrome.angrybirds.com cms.hss.gov crl.godaddy.com digitalhistory.uh.edu digital.library.okstate.edu digital.olivesoftware.com 这是我想要的输出。 chrome.angrybirds.com crl.godaddy.com ajax.googleapis.com digital.olivesoftware.com digital.library.okstate.edu digitalhistory.uh.edu bensguide.gpo.gov cms.hss.gov au.af.mil alchemy.l8r.pl www.activityvillage.co.uk akhet.co.uk bbc.co.uk 以防万一你想知道为什么,Squidguard有一个错误/devise缺陷。 如果www.example.com和example.com都包含在列表中,则example.com条目将被忽略,您只能访问www.example.com内容。 我有几个大清单,需要一些清理,因为有人不先查看添加条目。

最好的学习Linux shell脚本的书?

我通常在Windows机器上工作,但在某些情况下,我切换到Linux上的开发。 而我最近的项目将完全写在一个linix平台上(不是标准的Apache / MySQL / PHP设置)。 所以我认为现在学会编写一些linux自动化脚本是值得的。 我可以绕过系统,开始/停止服务,编译/安装好东西。 这些可能是程序员的基本钻取。 但是,例如,如果我想每个月自动将一个特定的应用程序部署到一台新的Linux机器上,我很想知道如何去做。 所以如果我想学习认真的linux shell脚本,我应该阅读哪本书?

什么版本的Windows Management Framework安装?

如何检查Windows Management Framework(WMF)的安装版本? 似乎应该是一件简单的事情,但我不能。 即使用谷歌search一堆不同版本的问题,几乎没有变化。 这不是在appwiz.cpl中,registry没有find“Windows Management Framework”的任何东西,它发现太多的“wmf” 我只是想知道如何检查它,以任何合理的方式。 有没有registry键? 有我可以检查的文件吗? 什么??? 我能find的最接近的东西是在serverfault: 检测Windows Management Framework版本的方法 。 这个问题开始是一样的,但似乎要求在GPO中使用特定的检查方式; 也许这就是为什么没有答案。 有多台电脑我想检查这个。 我开始的是Windows Server 2008 R2 Standard。 还会有其他的Windows Server操作系统。 如果您知道任何比我有效的标签,请发表评论或重新标注; 我找不到任何描述这个问题的东西。 更新:有些人似乎认为“ $PSVersionTable ”(和/或它的各种属性)是一个答案。 最后我终于意识到这是一个PowerShellvariables(也许'PS'前缀应该已经给我,但它没有),并试图深入挖掘。 这导致了另一个问题: PowerShell的$ PSVersionTable的内容代表什么? 。 Update2:根据我现在收集的所有信息和我的更好的理解,我相当肯定PowerShell的内置variables$PSVersionTable.PSVersion在技​​术上不是这个的答案,但是它通常是(有时候总是?不知道)相同,因为在版本可能会携手共进。 $PSVersionTable.WSManStackVersionvariables可能是我想要的,但该属性的官方简短描述显示它代表WSpipe理堆栈。 WS-Management堆栈与WMF是一样的吗? 谷歌search表明他们是密切相关的,但我不确定是否答案是肯定的。

如何自动和临时阻止IP地址在很短的时间内在服务器上造成太多的命中?

我的一个LAMP服务器最近被某种脚本机器人用来寻找漏洞。 从外观上来看,它每秒钟发出如此多的请求,使得服务器上的RAM过载,并把整个网站停下来一个小时。 这个“attacK”全部来自一个IP地址。 那么如何在短时间内自动暂时阻止IP地址在我的LAMP服务器上点击太多呢? 什么是最好的工具,我应该在操作系统级别还是通过PHP来解决这个问题?

如何从STDIN中读取多行到一个variables?

我一直在使用这个问题无济于事。 我正在工作中自动化一个构build过程,而我所要做的就是获取版本号和构build的一个很小的描述,可能是多行的。 运行的系统是OSX 10.6.8。 我已经看到了使用CAT来处理每一行的一切。 我不知道我应该使用什么,为什么。 尝试 read -d '' versionNotes 如果用户必须使用退格键,则会导致乱码input。 也没有什么好的方法来终止input,因为^ D不会终止,^ C只是退出这个过程。 read -d 'END' versionNotes 工作…但仍然input,如果退格键是必要的。 while read versionNotes do echo " $versionNotes" >> "source/application.yml" done 没有正确地结束input(因为我太晚,查不到匹配空string)。

使用自动化脚本设置时区

我正在编写脚本来自动设置新的slicehost安装。 在一个完美的世界里,当我开始剧本之后,它就会运行,而我却不在意。 除了一个例外,我已经成功了。 如何设置时区,永久(重新生存)和理智(调整标准和夏令时,所以不要只是强制date)…方式,不需要我的input? 目前,我正在使用 dpkg-reconfigure tzdata 这似乎没有任何方法来强制参数。 它要求用户input。 编辑:我在这里编辑,而不是评论,因为评论似乎不允许代码块。 下面是我结束的实际代码,基于下面的Rudedog的评论。 我也注意到这不会更新/ etc / timezone。 我不确定是谁使用的,但如果有人这样做,我也是这样设置的。 TIMEZONE="America/Los_Angeles" echo $TIMEZONE > /etc/timezone cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime # This sets the time