任务:在到达(特定地址)到(特定地址)的电子邮件时,必须parsing消息,并且必须完成一些操作。 更具体。 我们的一个人事会计软件向我发送有关设置邮件转发的电子邮件 – 用户退休或休假或生病。 HQ认为设置转发是系统pipe理员的工作。 好的,为了缓解我写bash脚本的事情,它需要4个参数:转发的开始和结束date,以及两个地址 – 从谁和谁转发。 该脚本调用zmprov进行必要的修改,并将数据存储在伪数据库中,然后在cron.daily上进行处理。 在邮件到达时,我从中复制date和地址,并将其粘贴为脚本的CLI参数。 由于这些电子邮件的内容是结构化的,我想我可以编写一个parsing器,它将提取信息并自动启动我的脚本。 但我不知道如何启动这个parsing器。 在旧的FidoNET中,有很多所谓的“邮件机器人” – 激活程序来处理传入的networking/回声邮件。 API已经被logging并且足够清晰 – 邮件程序或echomail处理器可以触发事件,并且如果需要的话可以启动机器人。 在Zimbra中,我发现只有一个办法:用sendmail使用milters。 在我的服务器上,每天收到的电子邮件数量大约是50-75公斤,每封邮件的发送量都是相反的 – 每周大约有1-5个转发请求。 有没有什么方法可以根据消息数据发起一些事情,而不是基于事实的到来?
当我知道域名时,如何自动生成自签名证书? 这有效,但它会在命令行上提示我一些问题。 我应该如何改变它来忽略问题并自动inputFQDN? #! /bin/bash echo 01 > ca.srl openssl genrsa -des3 -out ca-key.pem openssl req -new -x509 -days 365 -key ca-key.pem -out ca.pem openssl genrsa -des3 -out server-key.pem openssl req -new -key server-key.pem -out server.csr openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -out server-cert.pem openssl genrsa -des3 -out client-key.pem openssl […]
我想创build一个虚拟机模板(vSphere专门),当用来创build一个新的实例,将自动join现有的牧场环境。 我尝试从Rancher添加自定义主机页面运行命令来创build代理,然后将该VM作为模板冻结。 但是,当我使用该模板创build新实例时,代理无法从Rancher服务器下载代理,因为服务器返回了未经授权的错误状态。 我猜这意味着添加自定义主机页面的命令有一个内置的时间戳。 是否有另一种方法来设置一个虚拟机模板,将自动join一个牧场环境?
如何提升Ansible来运行剧本的根? 问题是,我想提供的服务器禁用了根访问权限,唯一拥有login权限的用户除了向其他用户提供外,绝对没有权限执行任何操作。 所以,当我手动login服务器时,我会做这样的事情 – ssh [email protected] ,然后如果我需要安装一些东西,我会做sudo – myuser或在一些罕见的情况sudo -然后input相应的用户密码。 不幸的是,如果我运行我的Ansible手册,我似乎无法将用户提升到根目录。 我在/etc/ansible/hosts文件中有这样的一行: [vault_server] vdom7.intrn ansible_become=true ansible_become_user="root" ansible_become_password="<root_user_password>" 我从运行剧本得到的结果如下: PLAY [vault_server] ********************************************************* GATHERING FACTS *************************************************************** fatal: [vdom7.intrn] => Incorrect become password PLAY RECAP ******************************************************************** to retry, use: –limit @/home/user/main.retry vdom7.intrn : ok=0 changed=0 unreachable=1 failed=0 我知道ansible_become_password确实有一些作用,因为以前我曾经得到Missing become password一个错误的Missing become password ,但同时我知道我提供的密码是正确的用户,因为当我手动使用它的作品就像一个魅力,所以我我真的不知道我在做什么错,我应该如何改变剧本的运行用户。
我有一个计划的ruby进程,每分钟运行一个Windows 2012 R2计算机 – 有时只有几秒钟后退出,其他时间,运行5分钟左右。 我试图实现的是能够closures机器,等待过程退出(如果正在运行), 然后再closures。 closures需要从外部启动(例如,通过AWS API调用)。 有没有办法做到这一点? 我尝试了一些不同的东西,但无济于事: 在Ruby代码中的Signal.trap(…) – 似乎没有信号发送到进程 一个本身调用Wait-Process的closures脚本 – 在这种情况下,我认为 ruby进程在closures脚本执行前被杀死。 我也看到有一种方法可以让windows程序挂接到特定的窗口事件(例如: CTRL_SHUTDOWN_EVENT )并返回值来说明是否继续closures,但是我怎么能够钩住在这个ruby进程中。 也许它可以包装在一些Windows程序来允许这个?
我有一个自我托pipe的2010 Exchange Server的客户端。 他们希望自动回复仅在下午5点到8点之间自动打开。 在这段时间内,他们不希望有任何新电子邮件的通知出现在他们的设备上,但仍希望能够检查他们的电子邮件。 交换机是可以configuration的吗?或者有一些软件可以做到这一点吗? 或者我需要开发一个定制的解决scheme?
我有一个自动化的部署者脚本,它将git提交到某个分支,编译并上传存档的二进制对象到云(S3)。 稍后,脚本login到EC2实例并下载档案并执行/启动项目/服务器。 到目前为止,这是完美的工作。 最近,我遇到了磁盘空间问题。 由于我也存储日志和维护当前/以前的工作提交,我的目录结构是这样的: /path /current/ <- symlink /prev/ <- symlink /HASH00001/ /HASH00002/ /HASH00003/ /HASH00004/ /HASH00005/ /…/ /…/ /HASH0000n/ /some.log /some.log.1 /some.log.2.gz /… 为了维护起见,我想删除/path中所有的特定git commit的SHA值的子目录。 但是,有一个警告, current和prev符号链接指向的目录不应该被删除。 到目前为止,我正在手动在任何面临存储问题的机器上。 我更喜欢我的部署脚本来照顾这一步。 我正在使用ls命令并根据上次访问时间戳对结果进行sorting: ls -drt | head -n -4 并将xargs rm -rf传送给它。 我现在正在考虑修改它,以便只列出长度正好为40个字符的目录名称,然后删除目录。 符号链接到current和prev 。 我可以得到一些关于如何实现相同的指针!
什么是用于部署虚拟机的整个networking,然后在Azure上configuration它们的最有效和最现代的工具链? 我们正在尝试使用负载平衡器在Azure云上自动部署4个子网上的14个虚拟机。 目前我们使用Azure Powershell和JSON模板完成configuration,之后我们还必须select一个工具来将代码部署到这些机器并configuration它们(我已经读过厨师和Puppet,但是我们会喜欢尽可能简单地做到这一点)。 使用Powershell和模板,configurationRedis VM需要大约25分钟,有时会超时。 有没有办法让Powershell脚本几乎立即执行,只需将JSON模板上传到Azure,并让Azure执行所有的REST API工作来指导configuration?
首先,我并不是在寻找一个产品推荐(当然了,但是我更喜欢寻找问题的解决scheme,而不是试图从现有的列表中挑选某些东西) 环境:我正在使用Jenkins来运行一个复杂的,多阶段的工作。 作业创build和configuration服务器,在其上部署操作系统和应用程序堆栈,使用演示数据填充堆栈,运行标准testing,然后执行一些额外的负面testing,然后使用更多configuration的服务器扩展堆栈,并运行更多testing。 问题:在这些阶段的任何一个阶段都可能发生失败,无论是记者configuration不当还是完全失败。 无论哪种方式,我可以在jenkins做两件事之一 – 退出(1)或继续下去,将问题倾倒到控制台。 两者都不是很好,因为我最终会得到一个不完整的工作(如果我退出),或者有一个很好的绿色误报,为了确保它是真正的绿色,我必须阅读几个从日志安慰。 我在寻找什么:Jenkins或其他系统的一种方式,能够分别监控和报告每个步骤在工作中的成功/失败,保持工作的一致性(例如,我无法为每个步骤开始新的工作),所以我可以看到,例如,供应和操作系统部署工作,堆栈部署有错误,但已完成,负面testing失败,而不是每个运行的当前绿色/红色状态,除非我进去阅读日志 任何build议,欢迎,无论是为我不知道的jenkins插件,或其他系统,或其他任何。
我正在做一个个人项目。 由于我不必担心与他人合作或从开发环境部署到生产环境,因此我只是简单地修改服务器上的文件,而我正在为我的应用程序提供服务。 为此,我使用Panic的传输( https://panic.com/transmit/ ),一个FTP / SFTP客户端。 对我来说很高兴,它提供了FUSEfunction,所以我可以将我的服务器的文件系统挂载到我的本地文件系统上。 我在我的文本编辑器中进行了更改,他们得到保存,他们自动上传。 但是我的文件也需要在服务器上由Gulp( http://gulpjs.com/ )处理。 这部分也适用。 Gulp观察这些文件,如果它们改变了,它将处理它们。 不幸的是,这两件事情在一起工作不好。 当我做出改变的时候,我最终会得到一个空文件,在那里我希望有一个新处理的文件。 我的假设是,传输不是primefaces传输我的文件。 而且似乎没有提供这样做的select。 Gulp在传输有机会上传他们的内容之前看到文件变化,因此我得到空文件。 我的问题是,我能做些什么来解决这个问题? 我宁愿保持尽可能接近我目前的工具链,但我也接受全新的方式来完成这一点。 谢谢!