标签: scripting

用于杀死进程直到它死亡的 Bash 片段?

我正在尝试编写一个强大的 bash 脚本,并在其中创建一个后台进程。在脚本的最后,我想杀死它。我有它的PID。

我在想这样的事情

while [[ ps ef $PID ]] ; do
  kill $PID
  sleep 0.5
done
Run Code Online (Sandbox Code Playgroud)

有什么更好的建议吗?这种方法有什么可能的问题吗?

scripting bash kill process snippet

9
推荐指数
2
解决办法
8308
查看次数

批量查询戴尔服务标签

任何人都知道获取一系列服务标签信息的方法,戴尔在他们的网站上是否有一个部分?我也愿意接受任何 Perl/Python 库或 *nix shell 脚本。

现在我最想要的是每个标签的某种日期。

scripting dell

9
推荐指数
2
解决办法
1万
查看次数

如何限制用户的shell允许执行shell程序

是否有可能阻止任何用户不使用诸如 ls、rm 和其他可能损害系统的系统命令之类的命令。但是用户应该能够执行shell程序。

scripting linux shell

9
推荐指数
3
解决办法
3万
查看次数

在 SERVER 端,有没有办法防止 Thumbs.db 被创建?

我在 Win2003 服务器上共享驱动器上的文件上运行了一些脚本。

我需要查看我们网络中任意数量 PC 上的图像..所以每次我浏览这些文件夹时,客户端都会创建 thumbs.db,这会干扰我们移动和删除文件夹的脚本,但通常无法这样做,因为“thumbs.db 正在使用中”。

即使我在我使用的任何客户端机器上关闭我的文件夹/图像预览也是如此。

所以我想完全禁用 thumbs.db - 但是有没有办法在服务器上这样做,所以我不必担心客户端机器注册表设置等?

scripting windows

9
推荐指数
2
解决办法
1万
查看次数

Linux ps命令输出可以通过用户AND命令过滤吗?

我需要一个进程的 pid 给定它的所有者和它的命令。我可以使用“ps -u xxx”和它的命令“ps -C yyy”过滤每个用户的进程,但是当我尝试“ps -u xxx -C yyy”时,它们使用OR逻辑组合。我需要 AND 逻辑。我怎样才能做到这一点?

scripting linux command-line-interface

9
推荐指数
1
解决办法
2万
查看次数

php5-fpm:用于在重启前检查配置的 bash 脚本

我编写了一个脚本来在 Nginx 上创建新的虚拟主机。该脚本创建 Ningx vhost 配置文件、vhost 用户和目录、php-fpm 池文件。

在脚本的末尾,我想在重新启动 php-fpm 之前检查配置是否正常。对于 Apache,我可以apachectl graceful,但是可以用 做类似的事情php5-fpm -t吗?

scripting php bash php-fpm

9
推荐指数
1
解决办法
2万
查看次数

未激活通过 appcmd 更改 IIS 上的物理路径

我们在 IIS 7.5 上遇到了一个问题,我们有一个简单的部署系统,它包含以下内容:

创建一个新的 webroot 的 zip 文件,包含三个文件夹:

Api
Site
Manager
Run Code Online (Sandbox Code Playgroud)

它被解压到一个新文件夹中(假设我们称之为“SITE_REV1”),并包含一个调用以下内容的脚本(每个 webroot 一个):

C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"

这通常工作,在 9/10 倍。在某些情况下,webroot 似乎已正确更新(如果我检查 IIS 管理器中的基本设置,路径看起来是正确的),但有问题的运行站点实际上指向旧位置。我们设法“修复它”的唯一方法是运行 IIS 重置。仅回收有问题的应用程序池是不够的。

有时似乎甚至有必要重新启动,但我不能 100% 确定这是准确的(并非总是我自己在解决问题)。

我使用 Powershell 和 Web-Administration 模块重写了脚本,希望 appcmd 中存在故障,但发生了同样的问题。

Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"

有没有人经历过这样的事情?有没有人知道发生了什么,我可以尝试做些什么来防止这个问题?执行 IIS 重置对我们来说并不是一个好的选择,因为每次我们尝试在单个站点上部署更改时,这都会影响服务器上的所有站点。

编辑:我们已经确定在 IIS 管理器中启动/停止站点(而不是应用程序池)可以解决错误的物理路径,但是如果我使用 appcmd 停止站点,更改物理路径,然后启动它,我仍然遭受同样的问题。我在一片空白...

scripting powershell deployment iis-7.5 appcmd

9
推荐指数
1
解决办法
6060
查看次数

复制项目文件系统提供程序错误

Copy-item cmdlet 没有按预期工作,我不明白为什么。这是我的代码:

$Source = "C:\folder1"
$Destination = "\\172.22.0.115\c$\folder2\"
$Password  = ConvertTo-SecureString -AsPlainText -Force -String "MyPassword"
$User = "Domain\Administrator"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password

Copy-Item $Source -Destination $Destination -Credential $credentials 
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

The FileSystem provider supports credentials only on the New-PSDrive cmdlet. Perform 
the operation again without specifying credentials.
At C:\Sans titre2.ps1:7 char:1
+ Copy-Item $Source -Destination $Destination -Credential $credentials
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotImplemented: (:) [], PSNotSupportedException
    + FullyQualifiedErrorId : NotSupported
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

Start-BitsTransfer -Source $source -Destination $Destination …
Run Code Online (Sandbox Code Playgroud)

scripting windows powershell windows-server-2012 windows-server-2012-r2

9
推荐指数
1
解决办法
1万
查看次数

如何让 SCCM 识别来自 Powershell 脚本完成的返回码?

我正在使用 SCCM 2012 应用程序部署来安装软件。特定的安装类型是脚本安装程序,因为 SCCM 一直因 exe 验证错误而失败。该脚本是 powershell,即使由 SCCM 执行也能成功安装软件。

问题是 SCCM 只能从脚本的完成中看到 0 的返回。我试过write-host, return, write-output, 和只是一个带有软重启代码的行项目。SCCM 似乎没有读取它们,因为应用程序执行日志捕获了 0 的返回值。

您如何从 powershell 输出返回代码,以便 SCCM 可以解释它们?

scripting powershell sccm sccm-2012-r2

9
推荐指数
1
解决办法
3万
查看次数

如何使用 openssl 从 HTTP GET 请求中获取结果?

我需要使用 openssl 在 shell 脚本中执行一些 HTTP GET 请求。我现在用来执行此操作的行如下所示。这是解析以下格式的 XML 响应的内容。

<Result>success</Result>

<Result>failure</Result>

echo -e "GET /test HTTP/1.1\r\nHost:$(hostname)\r\n\r\n" | openssl 2>&1 s_client -quiet -connect server-url:443 | grep -o -P --color '(?<=Result\>).*(?=\</Result)'
Run Code Online (Sandbox Code Playgroud)

这有效并相应地返回字符串“成功”或“失败”。我面临的问题是该openssl命令在执行 GET 请求后不会终止,而是坐在那里等待更多输入。我相信这是由于隐式的-ign_eof,它阻止了由-quiet选项引起的自动终止。我已经尝试使用该-no_ign_eof选项,但这会导致openssl命令在 GET 请求收到响应之前终止,因此如果我使用它,我将无法获取响应的内容。

如何修改此命令,以便我可以通过 stdin 传递 GET 请求(因为我想将其放入循环中是必需的),但openssl在每次请求后都会终止该命令?

scripting bash openssl shell-scripting

9
推荐指数
1
解决办法
1万
查看次数