我有一个用于自动化WSUS进程的脚本,它的最后一个阶段继续删除所有旧的/不必要的文件/对象。
我想在清理阶段之前提示“按‘回车’继续删除或任何其他键停止”,让人们可以选择不运行它。
我目前在脚本末尾的代码在这里:
Get-WsusServer 10.1.1.25 -PortNumber 8530 | Get-WsusUpdate -Classification All -Approval Unapproved -Status FailedOrNeeded | Approve-WsusUpdate -Action Install -Target $ComputerTarget -Verbose
Write-Host "Updates have been approved!"
Write-Host "Preparing to clean WSUS Server of obsolete computers, updates, and content files."
#Part2 - WSUS Server Cleanup
##Run Cleanup Command
Get-WsusServer $WSUS_Server -PortNumber $PortNumber | Invoke-WsusServerCleanup -CleanupObsoleteComputers -CleanupObsoleteUpdates -CleanupUnneededContentFiles
Run Code Online (Sandbox Code Playgroud)
就在#Part2 之前,我想要提示“按回车继续或任何其他键中止”
有没有一种简单的方法可以做到这一点?
我所看到的一切似乎都涉及将整个脚本嵌套在我不想这样做的代码块中。=/
如果我在我的盒子上使用 root 密码登录,我可以简单地输入
mysqldump --all-databases ,我会得到预期的“转储”。
我在 cron.daily 中设置了一个作业来运行并将其转储到备份驱动器。我遇到的问题是,虽然用户以 root 身份运行,但我收到以下消息
mysqldump:得到错误:1045:用户'root'@'localhost'的访问被拒绝(使用密码:否)
尝试连接时。我不想在脚本中硬编码 mysql 数据库 root 密码(谁会)。
考虑到我可以在我的 bash shell 的命令行中输入“mysqldump”,必须有办法使用 -u 参数。我已经在脚本的顶部有 #!/bin/bash。
我在这里错过了什么才能让它不要求数据库的 root 密码?
我尝试在 IIS 7 中的“默认网站”下使用AppCmd.
但首先我想看看是否已经存在。如何使用AppCmd在“默认网站”下创建虚拟目录以及如何执行 if 语句?
我试图弄清楚其他人如何实现他们的日志管理系统。
我有 20-30 个 Linux 服务器和一些 Windows 机器(其中大部分是虚拟的)。我们使用大量 Perl 和 Bash 脚本来完成大部分自动化工作,我正在尝试标准化它们的日志记录。
我一直在寻找 log4perl 和 log4sh 来记录脚本,并使用 syslog-ng 来获取集中式日志服务器上的所有日志。我还阅读了 splunk,尽管听起来企业版非常昂贵,而且我可能会超过所有服务器的免费许可限制。
我见过其他工具,如 swatch 和 logcheck,但我不太确定所有这些部分如何组合在一起......任何建议将不胜感激!
我通常在 Windows 机器上工作,但在某些情况下我确实切换到在 linux 上进行开发。我最近的项目将完全在特定的 linix 平台上编写(不是标准的 Apache/MySQL/PHP 设置)。所以我认为现在学习编写一些 linux 自动化脚本是值得的。
我可以绕过系统,启动/停止服务,编译/安装东西。这些可能是程序员的基本练习。但是,例如,如果我想每个月自动将某个应用程序部署到新创建的 linux 机器上,我很想知道如何去做。
所以如果我想学习严肃的 linux shell 脚本,我应该读什么书?
尽管似乎有三个可用选项,其中一个实际上是安全的,但似乎只有两个可用选项能够影响更改时未开机或移动且未连接到网络的机器在变化的时候。两者似乎都不是一个安全的选择。我所知道的三个选项是:
我取消了 Powershell 选项,因为我不知道如何有效地定位/迭代,并取消已更改的机器、网络上的所有机器以及会对不必要的网络开销产生什么影响,即使它可能是最好的可用解决方案因为密码本身可以存储在 CipherSafe.NET(第 3 方解决方案)容器中,并且密码传递给目标机器的脚本。我还没有检查 Powershell 是否可以从本地 Windows 计算机的凭据管理器获取密码以在脚本中使用,或者是否可以在那里存储密码以与脚本一起使用。
.vbs 脚本选项是不安全的,因为密码以明文形式存储在 SYSVOL 共享中,该共享可用于网络上的任何域计算机。任何想要找到后门并使用一点谷歌的人都会找到那扇门,如果足够坚持的话。
正如此 MSDN 注释所述,GPO 选项也不安全:http : //code.msdn.microsoft.com/Solution-for-management-of-ae44e789
我正在寻找一种非 3rd 方解决方案,我认为该解决方案应该可用或能够在具有正确知识或指导的情况下在内部开发。
scripting powershell active-directory group-policy password-management
标题几乎总结了它。
如何将我的服务器应用程序的 startup.sh 和 shutdown.sh 添加到 Debian 操作系统的启动和关闭序列中?
我为我的服务器编写了许多脚本。其中一些在我的~/scripts目录中,其中一些在应用程序目录中。
我只是想知道是否有一个您通常会用来保存 shell 脚本的目录?
我正在尝试使用 powershell 卸载外部 USB 驱动器,但无法成功执行此操作。以下脚本是我使用的:
#get the Win32Volume object representing the volume I wish to eject
$drive = Get-WmiObject Win32_Volume -filter "DriveLetter = 'F:'"
#call dismount on that object there by ejecting drive
$drive.Dismount($Force , $Permanent)
Run Code Online (Sandbox Code Playgroud)
然后我检查我的计算机以检查驱动器是否已卸载,但事实并非如此。
布尔参数 $force 和 $permanent 已尝试使用不同的排列,但无济于事。当参数被切换时,卸载命令返回的退出代码会发生变化。
(0,0) = exit code 0
(0,1) = exit code 2
(1,0) = exit code 0
(1,1) = exit code 2
Run Code Online (Sandbox Code Playgroud)
退出代码 2 的文档表明存在安装点是它无法卸载的原因。虽然我试图卸载存在的唯一挂载点,但我不确定这个退出代码试图告诉我什么。
已经在网上搜索遇到类似问题的人后,我只找到了一个额外的命令可以尝试,如下所示:
# executed after the .Dismount() command
$drive.Put()
Run Code Online (Sandbox Code Playgroud)
这个额外的命令没有帮助。
我没有什么可以尝试的了,所以任何人都可以给我任何帮助将不胜感激。
我在 ubuntu 10 下以远程调试模式设置 Tomcat 变得很疯狂。基本上我将它添加到 /etc/init.d/tomcat6(在开始时):
JAVA_OPTS="-Djava.awt.headless=true -Xmx256M -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Run Code Online (Sandbox Code Playgroud)
但我看不到任何效果......实际上我看不到端口 8000 用 netstat -a 打开,Eclipse 远程调试器说它无法连接。如果我做 ps -A u| 我得到的 grep java:
tomcat6 9612 3.1 13.1 470560 154168 ? Sl 15:24 0:17 /usr/lib/jvm/java-6-sun/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tmp org.apache.catalina.startup.Bootstrap start
Run Code Online (Sandbox Code Playgroud)
请注意,它甚至没有设置堆大小(如果这有意义的话)。
所以有什么提示吗?