我们有一个内部IIS服务器,托pipe几个网站,redirect到外部托pipe的Web应用程序。 有时候人们会做重要的事情,如重新启动服务器,停止服务,拔掉电缆,你把它命名它发生….我想validation我们的内部IISnetworking服务器启动并运行每15分钟,如果不尝试重新启动服务并给我发一封电子邮件。 我写了这个PowerShell脚本,但不知道这是否是完成这个最好的方法? ################################################################### # Summary: Verify W3SVC service is running, send email if it's down ################################################################### ############################## # Get service status ############################## $serviceName = "W3SVC" $serverName = hostname $status = (Get-Service $serviceName).Status if ($status -ne "Running"){ sendMail "$serviceName" "$serverName" #sendmail is a function (not shown) Restart-Service $ServiceName }else{ # Service is running, do nothing; […]
我正在使用EC2,是Linux新世界的新手,我已经find了一个答案,但我想我只是不知道如何正确地提出问题。 我已经安装了jenkins和git使用yum帐户ec2用户下 ,他们安装正常。 Yum创build了一个名为jenkins的帐户,运行Jenkins进程(使用ps -aux检查,用户是jenkins)。 我有一个使用公钥/私钥的远程git存储库。 当我ssh-keygen ,然后通过ec2用户连接到我的远程git存储库,一切都很好。 我只是不确定如何或在哪里为jenkins用户创build一个密钥。 这是我的麻烦开始的地方。 当我su jenkins然后su jenkins ,我结束了su jenkins ~ec2-user 。 当我运行ssh-keygen作为jenkins时,它想把密钥放到/home/ec2-user/.ssh/id_rsa – 这看起来不正确。 我怎样才能为jenkins创build一个密钥对,或者我应该把它添加到〜ec2 ~ec2-user/.ssh/id_rsa ?
我们刚刚对某个内部程序(称为SPARE)进行了广泛的testing,以处理备件。 这个想法很简单。 每个节点在服务器上都有一个数据库,并且通过复制服务,每个节点上的所有数据库都是最新的。 几天来,我们没有得到沟通工作。 日志表明节点试图通信,但没有find或接受包装。 使用Wireshark运行表明包确实在节点之间交换,但由于某种原因,SPARE不想承认它们。 SPARE使用端口7777。 我们与开发人员通电话,他们认为这可能是一个防火墙问题。 然而,SPARE使用的服务是在exeptions列表中,并且如上所述,Wireshark在两个方向都检测到了端口7777上的软件包。 然后,我们试了最后一件事。 我们去了Windows防火墙的高级选项卡。 在那里,我们进入了networking连接设置下的设置,并添加了当前的节点服务器IP和端口7777,之后一切正常。 数据库节点之间的复制按预期工作。 对我来说,这有点奇怪,因为我认为防火墙允许或阻止某个端口或服务上的所有stream量。 但在我们的情况下,它似乎只阻止了其中的一部分。 Wireshark检测到足够的软件包,但是SPARE交换信息太less。 这个问题有什么好的答案?
我正在设置启用了Windows防火墙的强化应用程序服务器。 操作系统是2008 R2。 我们正在使用高级防火墙设置,如果有问题,请使用IPSec和Kerberos身份validation。 我的其他主机(192.168.100.21)之一需要到达我的服务器(192.168.100.29),以使我的应用程序正常工作。 如果我允许来自该IP的所有入站stream量,它的function完美无瑕。 这不幸的是不符合我的监pipe要求。 审计事件显示连接尝试正在进行svchost,但它不成功。 我如何确定哪些服务正试图访问? 我使用下面显示的debugging审计来确定svchost行为。 auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Driver" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Main Mode" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Quick Mode" /success:enable /failure:enable auditpol /set /subcategory:"IPsec Extended Mode" /success:enable /failure:enable
考虑下面的脚本(称为main_script): #!/bin/bash # Configuration steps . . wrapper <arguments> # Other tasks . . wrapper <arguments> # Some more tasks . . 主脚本启动几个脚本,并让它们在后台运行。 这个主要脚本通常来自第三方 – 所以我没有任何控制权。 完成后,main_script刚刚退出。 现在我需要将由包装启动的进程与main_script联系起来,即我需要跟踪main_script已经启动的进程。 有人可以build议一个方法来做到这一点? 这里使用的包装是tanuki Java Service Wrapper 。 如果问题不清楚,请让我知道。
我正在使用launchd在启动时启动mysql,它工作正常。 我能够使用“launchctl卸载”和“launchctl加载”命令停止并启动服务。 另外,我可以通过在terminal中input“mysqld_safe”命令来启动服务。 但是,如果我通过“launchctl stop”停止服务,然后通过“mysqld_safe”命令启动服务,则无法通过“launchctl stop”停止服务。 这可能吗? 我在这里做错了什么? 我的Plist是: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>mysql.service</string> <key>ProgramArguments</key> <array> <string>/path/to/mysql/bin/mysqld_safe</string> <string>–defaults-file=/path/to/mysql/my.cnf</string> <string>–port=3306</string> <string>–socket=/path/to/mysql/tmp/mysql.sock</string> <string>–datadir=/path/to/mysql/data</string> <string>–log-error=/path/to/mysql/data/mysqld.log</string> <string>–pid-file=/path/to/mysql/data/mysqld.pid</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> <key>UserName</key> <string>_mysql</string> <key>GroupName</key> <string>_mysql</string> <key>StandardOutPath</key> <string>/tmp/mysql_start.out</string> <key>StandardErrorPath</key> <string>/tmp/mysql_start.err</string> </dict> </plist> 用于通过terminal启动mysql的命令是: mysqld_safe –defaults-file=/path/to/mysql/my.cnf –port=3306 –socket=/path/to/mysql/tmp/mysql.sock –datadir=/path/to/mysql/data –pid-file=/path/to/mysql/data/mysqld.pid
我知道这已经被处理过,但是我没有从这个问题得到明确的答案。 我有一个取决于打印后台处理程序的服务。 时不时的假脱机程序崩溃…(幸运的是不经常)… 当假脱机程序服务崩溃时,我需要停止该服务。 我不确定添加对后台打印程序的依赖关系是否可以做到这一点? 我尝试使用恢复选项“运行程序”,并使用一些脚本来停止服务,但 我不完全相信…(获得“访问被拒绝”错误) 感谢您的build议。
运行Nagios Core 4.0.2并在客户端使用最新的NRPE。 我们有3个服务定义每分钟检查一个不同层次的软件: 打开TCP端口检查 进程正在运行检查 应用程序层通过向套接字发送数据并期待一些返回值来检查 在任何这些检查失败的状态下,我们将调用一个event_handler来重新启动服务,最多3次。 如果3后状态不好,则升级。 问题是有一些组合,如果一个服务将失败另一个预计将处于CRITICAL状态。 如果我们每个都有一个event_handler,两个都失败,那么通过event_handler重启脚本将被调用两次。 例如,如果进程没有运行,那么TCP端口将不会打开,应用层检查将失败。 例如,TCP端口可能是CRITICAL,因为防火墙configuration不当的规则或networking条件,应用程序层将失败,因为无法到达,但进程仍在运行 问题:我们如何确保事件处理程序只被一个失败的服务检查调用,而不是3个失败的服务中的两个或多个重新启动,因为它们的状态变为CRITICAL? 例如,如果3个服务检查进入CRITICAL,那么在1分钟内重新启动3次,在2分钟内重新启动6次(假设重新启动失败使服务恢复到OK状态)。 我相信服务依赖可能是正确的解决scheme,但我不知道如何去创build它们来满足不同的条件。
有一个客户端应用程序失败,当我检查服务器进程时,我注意到,其中一个关键的应用程序服务没有运行。 进入服务控制面板,发现服务已停止,当我试图启动它,我收到以下错误信息: 错误1058服务无法启动,或者是因为它被禁用或者因为它没有与其关联的已启用设备。 我终于能够解码错误信息,并意识到有硬件configuration文件分配给特定的服务,可以启用/禁用,但现在我不知道如何设置将会改变。 有没有人知道任何Windows进程可能会做这样的事情,在AD,用户帐户,GPO或类似的事情的一些问题?
在从版本6的CentOs中,每个用户都有默认的进程限制1024,例如/etc/security/limits.d/90-nproc.conf * soft nproc 1024 我必须执行后端服务/守护进程“myservice”,这需要在进程限制中有更大的值。 所以我必须覆盖预先configuration的限制(1024)。 为此,我尝试为root和myuser(运行myservice的用户)创build单独的条目。 myuser soft nproc 5000 root soft nproc 5000 接着 service myservice restart 现在限制增加了,似乎这个问题已经解决了! 但它是暂时的,系统重新启动后,限制再次到1024.( 注: myservice被configuration为在启动时启动) 这似乎是由于init进程负责启动系统上的每个服务,因此“myserivce”作为subprocessinheritance了父进程的限制(init默认有1024个限制)。 我search了一下,发现是否有办法增加init的限制,但没有足够的幸运find任何! 我试图改变/ etc / security / limits.d / 90-nproc.conf * soft nproc 5000 但仍然相同,重新启动后,init仍然有1024个限制,myservice也有1024个限制 注:如果我从shell提示符重新启动myservice,那么它会得到接受的限制(5000),但我想每次重新启动后自动启动它。 有人可以指导我,我可以如何增加“myservice”的进程限制,并重新启动后保存它?