标签: scripting

从 xp 中的批处理脚本中删除临时文件

我正在寻找一个好的批处理脚本,它可以从 Windows(尽可能多的变体)机器(例如 Windows 临时文件夹、所有用户 IE 临时文件夹等)中快速找到并清理所有已知的安全临时文件夹/文件。我喜欢像 CCleaner(通过 Cleanmgr.exe)这样的 UI 工具,但是当我尝试快速和/或很少参与清理多台计算机时,有一个脚本会很好。

加上脚本,我可以将多个脚本链接在一起。也许一个然后启动各种防病毒和/或恶意软件检测器。

任何人都有一个好的或可以指向一个好的资源?

scripting windows files windows-xp batch-file

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

测试正在等待标准输入的脚本

有没有办法确定脚本是否正在等待 stdin 并在检测到命令时退出?

这是一个例子,我正在执行的命令需要很长时间才能运行,但它也会在启动 w/oa 提示之前提示输入。我想知道该命令实际上是在做某事,而不仅仅是在等待。

提供了以下名为 ./demo 的脚本

#!/bin/bash

read
Run Code Online (Sandbox Code Playgroud)

有没有办法检测读取正在等待标准输入?就像是

failifwaitingonstdin | ./demo
Run Code Online (Sandbox Code Playgroud)

一旦检测到读取命令,它将立即返回。

更新:

人们已经建议了诸如expect 和yes 之类的程序。在深入研究 yes 之后,我看到他们如何能够支持这种交互方式。他们不断地使用 fputs 将“y”写入标准输出。我可以简单地在 fputs 在写入标准输出时返回时立即返回错误,而不是无限地执行此操作。

scripting bash stdin

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

从现有配置创建 kickstart 配置文件

是否有脚本或其他方法可以根据现有服务器的系统状态自动生成 kickstart 配置文件,以便该文件可用于在另一个安装中复制(而不是克隆)系统配置?

我知道 anaconda-ks.cfg 文件存储在 /root 目录中。但该系统自安装以来已经发生了很大的变化,并且该文件现在没有用处。

scripting linux replication kickstart automated-install

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

在 cron 中运行带参数的脚本

我想运行 .py 脚本:

python /home/project/manage.py slope_update
Run Code Online (Sandbox Code Playgroud)

如果我从 shell 运行它就可以了,但是在 cron 中不起作用:

*/10 * * * * root python /home/project/manage.py slope_update
Run Code Online (Sandbox Code Playgroud)

什么错?

我从 root 编辑我的 /etc/crontab 文件


SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ …
Run Code Online (Sandbox Code Playgroud)

scripting cron

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

当邮件到达邮件服务器时如何运行脚本?(Debian)

我想解析并插入刚刚到达任务关键型应用程序邮件服务器的邮件中的一些信息。

我有什么方法可以配置我的邮件服务器,以便它在邮件到达时运行脚本。

虽然我有一个 debian 系统,但任何通用解决方案(Linux)都可以。

email scripting linux debian postfix

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

优化 RHEL/CentOS kickstart 工作流程的技巧

我在一个由位于多个数据中心和办公地点的 CentOS 系统组成的环境中工作。我一直在使用带有可靠安装后脚本的合理启动,但希望简化和扩展该过程。我们有自己的 yum 存储库,我可以控制使用的硬件范围(通常是HP ProLiant 硬件或 VMWare),假设我每周构建或重新部署一台服务器。按照硬件准备所需的步骤,我开始安装操作系统。我现在遇到的问题是:

1)。将系统引导到网络安装程序的好方法。我一直在使用 CentOS 发行版中可用的 10mb boot.iso/netinstall.iso。我通过 VMWare vCenter(用于 VM)或 HP ILO(通常通过 SSH,指向 ISO 的 URL)安装它以启动安装。大多数情况下我无法使用 PXE,因为数据中心位置没有可用的 DHCP。例如,有没有一种干净的方法可以将 boot.iso 放到 USB 密钥上?

2)。有时我需要为 kickstart 设置一个静态 IP。除了boot:在安装程序提示符下在命令行中输入信息之外,是否有更好的方法来输入该信息?

3)。自定义 kickstart 的好方法。现在,我拥有了大部分我需要的东西,但有时需要更改分区方案以适应不同的 RAID 设置(例如两个 SmartArray 控制器)。现在,我基本上是为每个系统(或系统组)设置创建一个单独的 kickstart 文件。我最终得到一个充满旧 *.cfg 文件的目录。我知道有一种更优雅的方式来做到这一点。也许是 PHP?

4)。帮助安装方法。按原样,从提示到完成的完整构建需要 5-10 分钟。我注意到安装方法很重要,具体取决于位置。HTTP 在 yum 服务器本地运行良好,但在我们与其他站点的高带宽低延迟连接上表现不佳。NFS 在这些情况下效果更好。我很感激在 kickstart 过程之前用于预加载设置或系统参数的任何漂亮技巧。

5)。安装后脚本运行良好。它拉出额外的包,设置一些初始设置,修剪服务列表并填充一些用户/密码/SSH 密钥。我想让这个环境通过适当的配置管理运行(我已经习惯了CFEngine,但认为Puppet或Bcfg2现在可能是更好的选择)。我是否削减了安装后脚本并将这些功能移到 CFEngine 中?不过,这可能是一个不同的问题。

这是我一直在使用的 kickstart 文件的一个示例:

install
text
url --url http://yum.abc.com/5.6/os/x86_64/
#nfs …
Run Code Online (Sandbox Code Playgroud)

scripting linux kickstart centos configuration-management

6
推荐指数
2
解决办法
3597
查看次数

您在哪里共享或找到有用的 powershell、bash、batch、vbs、脚本?

我刚刚编写了一个快速的小 PowerShell 脚本,以使我的生活更轻松地完成我面临的任务。我认为把它放在互联网上会很好,其他人可能也会发现它有用。麻烦的是,为我的小脚本打开一个新的 CodePlex 或 SourceForge “PROJECT”感觉有点过分了。

是否有类似的站点用于共享或开源脚本?

scripting powershell bash share open-source

6
推荐指数
2
解决办法
2072
查看次数

使用另一个变量作为一部分的 Bash 变量赋值

我有以下摘录自用于备份数据库的 bash 脚本

#!/bin/bash
DB=database_name
DBUSER=username
FILENAME=$DB_$(date +%s).sql
Run Code Online (Sandbox Code Playgroud)

我想重新使用的值DB的范围内FILENAME变量赋值,但它不会让我使用替代这种方式。我只是得到文件名的时间戳。

是否有可能实现我想要的,如果是这样,语法是什么?

谢谢。

scripting bash

6
推荐指数
1
解决办法
486
查看次数

需要一个脚本/批处理/程序来运行一个在父进程被杀死时不会被杀死的命令

场景

我使用 Zabbix 来监控我的服务器,最近我想为 Windows 的服务器添加更多指标。出于安全考虑,我使用了 Zabbix 的用户参数功能,但它将外部命令的执行时间限制在 3 秒左右。之后,命令被强行杀死。

我想运行一些长时间运行的命令,所以我使用了 Zabbix 论坛中的技巧:在后台运行命令,将结果写入文件并使用 Zabbix 收集它们。

由于“&”运算符,这在 *nix 下相当容易,但 Windows 的 shell 中没有这样的支持。更糟糕的是,当 Zabbix kills 强行杀死cmd.exe它用来评估命令的程序时,所有子进程都会死亡,包括未完成的后台任务。

因此,我需要一些可以切断与其孩子的所有联系的东西,这样他们就不会在级联杀戮中受到影响。

我试过的

  • start并且start /B- 他们什么都不做,因为孩子总是和父母一起死去
  • WScript.Shell.Run as invis.vbs from StackOverflow - 有时工作。如果wscript进程被强行终止而不是自行退出,那么孩子们也会死亡。
  • hstart - 与 invis.vbs 类似的结果
  • At 命令 - 这需要您为任务设置一个绝对时间,而不是偏移量,因此由于 Windows 的 shell 脚本功能有限,代码会非常混乱。
  • (编辑) PsExec.exe来自 SysInternals 套件 - 它使用服务来启动命令,因此它不受杀死的影响;但是,它会向 StdErr 打印一些横幅和日志信息,并且没有禁用此功能的开关。当我2>NUL用来重定向它们时,Zabbix 报告错误。

在以不同的组合尝试上述操作后,我注意到如果我调用hstartfrom invis.vbs,前者启动的命令在invis.vbs被杀死时将作为无父进程单独存在。

但是,由于我需要重定向输出,因此我要运行的命令始终采用cmd.exe …

scripting windows

6
推荐指数
1
解决办法
6730
查看次数

如何添加关闭脚本(不是使用 gpedit.msc 或活动目录)?

我创建了一个脚本,我想将其作为关机脚本部署在我的 XP 工作站上。我知道我可以使用 UI (gpedit.msc) 添加我的脚本作为关闭脚本,但我想自动部署我的脚本。我的工作站不是 Windows 域的一部分。我将使用 OCS Inventory 进行部署。

我试图向 Windows 注册表添加条目,但这不起作用。我在运行 gpedit.msc 时看不到我添加的内容。如果我用 gpedit.msc 添加一些东西,这似乎会覆盖我手动添加到注册表中的内容。

scripting windows windows-xp

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