Articles of 自动化

用于自动化Windows GUI应用程序的软件

我正在寻找能让我自动完成一些GUI任务的软件,包括点击button并发送按键到在前台运行的GUI应用程序。 有什么build议吗? 要求: 脚本 – 我需要在运行时做出决定的能力 – 例如,如果窗口标题包含一些特定的文本,则可以进行分支。 优先: 强大的button点击 – 不是“相对于窗口放置鼠标并发送点击”,而是通过某个内部ID查找button对象,然后直接向对象发送点击事件,或者只是将鼠标放在中间该button通过询问button在屏幕上的位置。 意识到GUI事件 – 例如,它会告诉我,如果一个窗口popup

机器对机器通信的协议select – 级别:n00b

我正在build立一个灌溉泵和连接pipe道的监测系统。 到目前为止,我已经完成了传感器networking。 一切都连接到一个微控制器板(实际上是4 Teensy 3.0板),并且板被编程为以预定的时间间隔输出一串格式化的数据(读数)。 我想要做的就是通过USB串口将电路板连接到一个RaspberryPI (或其他一些SBC),然后让计算机将来自传感器板的读数发送到远程服务器进行logging。 我考虑的选项是: 1 – 系统日志…它让我很早就意识到这一点,因为它似乎提供了我所需要的几乎所有东西。 复杂性让我感到害怕。 2 – REST …将RaspberryPI POST数据,线上,通过networking上传到服务器上的CouchDB。 3 – HTTP …使用node.js保持一个开放的HTTP连接,并“写入”数据行。 它当然需要被第二个node.js脚本接收,以存储在DB中。 现在要求: 〜它需要轻量级和相对较快。 将会有很多数据(间隔1秒),而RaspberryPI也不是强大的。 〜我非常喜欢压缩string的选项。 上行链路是通过3G,我希望去一个“小”的月度计划。 〜encryption将是很好的,但不是强制性的。 偏执狂与乡下人一样强大 〜我真的需要这个尽可能KISS。 长话短说,我已经把这个作为一种网上串行连接,一台计算机在线连接到另一台计算机。 那么,我在这里select的选项是可取的? 或者更好,有谁有更好的主意? 我诚恳地打开编辑,甚至重新发布这个问题,如果有人有一个好点。 编辑: 迄今为止所有的评论和回答都被赞赏和考虑。 系统日志真的很棒,但我真的需要避免复杂性和开销。 另外,经过一些testing,RaspberryPI似乎在启动rsyslog后不久就停下来了。 到目前为止,已经决定DBMS将成为CouchDB。 显而易见的select是使用curl或退化的node.js服务器在数据到达时立即对数据库服务器进行REST调用。 这虽然简单而有效,但出于许多原因并不可取。 安全也是一个问题。 我不喜欢在直接调用DBMS的领域中使用微型PC的想法。 我开始赏金的原因是我希望有人能够提出一个如下的想法:“远程微型PC和DBMS之间的某种持续连接,数据将通过某种协议进行格式化并通过这种连接进行转发以便在另一端接收,这种连接需要尽可能轻量,尽可能less的开销“。

太多的克朗 – 太多的机器!

我有以下问题: 机器太多了。 有些机器组共享相同的cronconfiguration,有些不是。 有时候,我需要在数百台机器上手动添加一个crontab条目。 我总是犯错误,我的BOSS似乎不喜欢… 有希望(有一个networking界面,GNU)有一些工具来pipe理这种事情? 感谢智者! 厘米

你如何优化新的用户设置?

让新员工快速成立的最大诀窍是什么? 你使用图像,脚本,还有其他的东西吗?

创build一个脚本来自动安装Perl应用程序及其依赖关系

我有一个Perl应用程序需要很多的依赖,我需要在众多的服务器上部署 我想制作一个能够自动快速安装Perl应用程序的脚本。 为了更快,我想使用我的软件包pipe理器来安装我的大部分依赖项,而不是使用CPAN安装它们 如果有debian软件包,有没有一种方法可以从perl模块列表中自动确定? 如果有的话,安装包,如果没有安装CPAN的Perl模块?

如何在Windows Server 2008计算机之间复制许多计划任务?

我有几个独立的Win2008(R1 + R2)服务器(无域),每个服务器都有数十个计划任务。 每次我们build立一个新的服务器,所有这些任务都必须在其上创build。 这些任务不在“子任务计划程序库”的“根”中,它们驻留在子文件夹中,深达两层。 我知道我可以使用schtasks.exe将任务导出到一个xml文件,然后使用: schtasks.exe /CREATE /XML …' 在新服务器上导入它们。 问题是schtasks.exe 在根中创build它们 ,而不是在它们所属的子文件夹中创build它们。 在GUI中也没有办法移动任务。 有没有一种工具可以让我集中pipe理所有的任务,并允许我在几台机器的文件夹中创build它们? 这也将使设置“正在执行的用户和密码”更容易。

如何以编程方式只将特定的nginx服务器块设置为维护模式

我正在寻找解决scheme来自动化我们的应用程序的部署过程之一。 在开始部署时,我想以编程方式将指定的服务器设置为维护模式,最后在部署完成后,从nginx服务器中删除维护模式标志。 通过维护模式,我的意思是nginx应该以HTTP响应代码503响应所有的请求(可能的自定义页面)。 我知道如何设置服务器块与503代码(请参阅http://www.cyberciti.biz/faq/custom-nginx-maintenance-page-with-http503/ ),但问题是关于如何以编程方式并最有效地。 我脑海中有两种select: 选项1:在部署过程开始时,将维护文件写入文档根目录,并有条件地检查nginx服务器configuration中是否存在维护文件: server { if (-f $document_root/in_maintenance_mode) { return 503; } } 此方法包含一定的开销,因为检查每个请求的文件存在。 只有在加载nginxconfiguration文件时才能检查文件是否存在? 选项2:部署脚本用维护版本replace整个nginx服务器configuration文件,并在部署结束时将其交换回来。 如果使用此方法,我担心可能会覆盖维护configuration文件的其他自动化进程(如puppet)。

如何自动更改临时驱动器的指定字母?

我有一个带有以下磁盘的AWS Windows框(Windows 2008 R2): C:\ 60 Gb (EBS) D:\ 200 Gb (EBS) Y:\ 40 Gb (Ephemeral SSD) Z:\ 40 Gb (Ephemeral SSD) 每次启动时,我将短暂的驱动器更改为D:和E:并将EBS驱动器更改为Z :。 有些时候在重新启动临时驱动器没有安装。 我真的需要这样,因为我有一个程序,它的数据在D:驱动器,不能改变。 我想受益于短暂SSD的额外速度。 在AWS中自动执行此操作的最佳方法是什么? 我想制作一个PowerShell脚本,使用WMI在启动时更改驱动器号(在此之后 ),但我不确定这是否是最佳select。 AWS有一些方法来控制/configuration临时驱动器吗?

通过Python脚本/非交互方​​式更改用户密码的安全方法

问题 有没有更安全/更好的方式来通过Python脚本非交互式地设置用户的密码? 我目前的解决scheme使用Fabric脚本中的chpasswd 。 另一个select是从Fabric脚本中使用Pexpect 。 我目前设置密码的方法是否是安全问题? 我所看到的潜在安全问题是,我的本地terminal上的密码显示为明文,如下所示: [xxx.xx.xx.xxx] run: echo "johnsmith:supersecretpassw0rd" | chpasswd [xxx.xx.xx.xxx] run: echo "johnsmith:supersecretpassw0rd" | chpasswd 。 由于我只用我的笔记本电脑运行Fabric脚本,我不认为这是一个安全问题,但我对其他人的input感兴趣。 背景 我已经使用Fabric创build了一个Python脚本来configuration新build的Slicehost Ubuntu切片。 如果您不熟悉Fabric,则使用Python SSH2客户端Paramiko为应用程序部署或系统pipe理任务提供远程访问。 我使用Fabric脚本的第一件事就是创build一个新的pipe理员用户并设置他们的密码。 与Pexpect不同,Fabric无法处理远程系统上的交互式命令,所以我需要非交互式地设置用户密码。 目前,我正在使用chpasswd命令,它将用户名和密码读取为明文。 当前代码 # Fabric imports and host configuration excluded for brevity root_password = getpass.getpass("Root's password given by SliceManager: ") admin_username = prompt("Enter a username for the […]

Perl或Python,更适合Unix系统自动化?

我一直在使用bash来处理大部分系统pipe理任务。 我也知道一点perl。 我应该学习Python还是Perl更适合系统自动化。 从我的经验来看,学习perl很简单。