我正在创build一个脚本来检查我的客户之一有关虚拟机的要求。 脚本的第一部分是检查操作系统是否是虚拟的。 为了实现这个目标,我创build了以下脚本。 问题是,即使系统是虚拟的,它不工作,我的意思是testing,如果不工作! 有没有人可以帮助,并说如果我做错了什么(我是初学者在shell脚本,可能是错误的)。 CHECK_SYSTEM=`dmidecode | grep -i "Product Name: VMware Virtual Platform"` if [ "$CHECK_SYSTEM" = "Product Name: VMware Virtual Platform" ] ; then printf "%s\n" "The system is Virtual" else printf "%s\n" "The system is not Virtual" exit 192 fi
在全新的映像计算机上通过shell脚本添加Open Directory服务器的最佳方法是什么? 我已经使用InstaDMG创build了一个新的映像,我想通过shell脚本添加Open Directory Server,而不必使用Directory Utility手动执行。 计算机不必绑定打开目录。 (客户端:10.5.7,服务器:10.4.11)
我正在构build一个新的Windows域(从Novell迁移),并需要编写login脚本来映射networking驱动器/打印机。 在过去,我曾经根据需要使用vbscript混合了一些wmi。 我正在考虑使用PowerShell,我想知道这是一个不错的select,或者如果有更好的select。 networking小〜20台机器和5-10台打印机。
我将XenServer作为我们应用程序开发的一次性QA机器的主机。 我想写一个脚本,自动从模板创build一个新的虚拟机,启动它,login到它,获取最新的应用程序构build并部署它。 我想我的脚本要做的是使用'xe vm-install'来安装虚拟机,使用'xe vm-start'启动它,等到启动完成,SSH进入之后,执行应用程序安装程序。 问题是,“xe vm-start”命令不会阻塞shell。 意思是,该命令在机器完全加载之前返回。 任何人都知道是否以及如何查询Xen的机器启动状态? 谢谢
几年前,我把下面的expect脚本放在Tiger Server下执行Open Directory备份 ,并在Leopard Server下运行良好: #!/usr/bin/expect -f set date [timestamp -format "%Y-%m-%d"] set archive_path "path/to/you/backup/dir" set archive_password "password" set archive_name "opendirectory_backup" spawn /usr/sbin/slapconfig -backupdb $archive_path/$archive_name-$date expect "Enter archive password" send "$archive_password\r" expect eof 它是仍然存在于root的crontab中的less数几个脚本之一,而不是一个launchd plist。 只是出于安全的原因,它只是root权限。 现在,问题是我几个星期前升级我的开放目录主到Mac OS X 10.6.4雪豹服务器,并没有工作,因为…当由Cron运行。 如果我以root用户身份login并手动运行,它将正常工作并创build生成的encryption磁盘映像。 当由cron运行时,它会经历完整的运动(包括/Library/Logs/slapconfig.log中的输出,与手动运行时的输出相匹配),但永远不会创build磁盘映像文件。 但是,在`/var/log/system.log/中,我看到以下输出: Jul 23 03:00:08 servername hdiejectd[93114]: running Jul 23 03:00:11 servername diskimages-helper[93111]: -frameworkCallbackWithDictionary: […]
这是一个家庭设置。 一个中央打印机服务器(Linux)pipe理队列,HP 2430DTN通过100Mbit / sec以太网连接到它。 打印机连接到可pipe理的电源。 shell脚本监视服务器上的队列(lpstat -o),并在有作业时打开打印机。 如果队列空了10分钟,它将closures打印机。 现在这个设置混乱了,在几个星期后停止了打印机等,一般情况下“不太可靠”。 我现在知道如何改变停止打印机的东西,但是: 有没有办法在脚本上运行我的打印机,并直接从打印机closures脚本的脚本而不看队列? 那太酷了!
我有一个命令行工作在常规的Windows命令行,但不知何故在Powershell(我是相当新的Powershell)误解。 sqlcmd -S .\SQLEXPRESS -i "f:\SQLBackups\ExpressMaint.sql" -v DB="ksuite" -v OPTYPE="DB" -v BACKUPFOLDER="f:\SQLBackups" -v REPORTFOLDER="f:\SQLBackups\Reports" -v DBRETAINUNIT="days" -v DBRETAINVAL="7" Powershell似乎是从需要path的参数中剥离驱动器号。 例如,当我尝试在Powershell中运行上述命令时,我得到以下内容: Sqlcmd: ':\SQLBackups': Invalid argument. Enter '-?' for help. 那么确定它没有驱动器号是无效的。 我已经尝试过双引号,转义等等的变体,但不能得到它的工作。 我错过了什么Powershell做不同?
我有一个脚本,我想testing文件的特定权限,特别是0644,如果它不是那么chmod它。 我知道我可以修改它,让它通过以防万一它已经是这样,但我想打印一个消息,它的以前的价值。
我已经search了高和低的答案。 我有密钥设置,所以没有密码是需要的SSH到远程主机。 我有sudo设置与该用户,以便我可以运行所需的命令作为root用户没有密码。 我只用ssh来执行几天的远程命令(这是一个多么辉煌的发现!)。 一点背景:在远程主机上运行的脚本是一个典型的程序启动/停止脚本。 在实际程序的某处,打开一个日志文件进行写入。 在远程主机上,如果以root用户身份运行脚本,一切正常。 如果我作为用户运行它,我得到一个错误: log4cplus:ERROR Unable to open file: appname.log 。 有道理,因为日志属于root。 现在,情况:我的本地主机上有一个脚本,它将SSH入远程主机,并使用sudo将运行该脚本。 脚本能够运行。 但是,启动后,我得到了与上面有关日志文件相同的错误。 我已经尝试了以下,这些都成功地运行脚本,但得到错误。 我知道有些是没有必要的,但是我想涵盖所有我能find的基础(我也尝试过-t,但是没有区别,我不认为会有,但是…): /usr/bin/ssh username@remotehost sh -c sudo "/etc/rc3.d/S99script start" /usr/bin/ssh username@remotehost sh -c sudo "/etc/rc3.d/S99script start" /usr/bin/ssh username@remotehost 'sh -c sudo "/etc/rc3.d/S99script start"' /usr/bin/ssh username@remotehost sudo /etc/rc3.d/S99script start /usr/bin/ssh username@remotehost "sudo /etc/rc3.d/S99script start" /usr/bin/ssh username@remotehost sudo […]
我有一个文件服务器,负责每天从多个工作站中提取一个文件夹树。 我目前使用的方法是使用rsync(提供的目录名称和/或文件保持不变),但是,当文件被重命名或在subdir1中移动时,rsync会将它们复制到服务器,创build重复项。 我必须手动查找并删除以前同步期间留在服务器上的无关文件/文件夹。 请注意,我不能使用rsync的 – 删除标志,因为从工作站的任何同步将镜像该特定的文件夹树,而不是合并到服务器。 可视图: Server: Workstation1 Workstation2 Workstation(n) Folder* Folder* Folder* Folder* -subdir1 -subdir1 -subdir1 -subdir(n) -file1 -file1 -file2 -file(n) -file2 -file(n) 有一个简单的脚本(最好在bash中,没有什么奇特的),可以在文件被重命名或移动到不同的子目录时完成删除多余的文件/文件夹? 有没有一个不同的程序,很像rsync,可以自主完成这个任务,并以一个更简单的方式? 我一致看过,但是我不喜欢它为同步信息保留本地数据库的事实。 任何提示,我应该如何解决这个问题? 先进的谢谢您的帮助。 编辑:我刚刚尝试过统一,我可以放心地说现在是不可能的。 unison是一个双向同步工具,从我的testing中,它将服务器上存在的文件映射到所有工作站。 – 这是不需要的。 最好,我想文件/文件夹留在其各自的工作站,只是合并到服务器。 AKA单向同步; 但重命名/移动传播到服务器。 我可能不得不像Kyle提到的Git / Mercurial / Bazaar一样,但是仍然不确定他们是否适合这份工作。