标签: scripting

在 bash 脚本中使用 awk 和 if

我正在编写一个脚本,其中我需要测试一个字符串,并根据其结果我将决定是否进一步进行。

下面的命令工作正常(如果字符串以“Clean”开头,它将打印 1,否则打印 0)。

echo | awk ' {print index("'"${task}"'", "Clean")}'
Run Code Online (Sandbox Code Playgroud)

我想做的是在 BASH 脚本中使用 AWK 和 IF 。基于这篇文章,我做了以下工作:

idx=$(awk '{print index("'"${task}"'", "Clean")}')
echo $idx
if [ "$idx" == "0" ]; then
   echo hello
fi
Run Code Online (Sandbox Code Playgroud)

正如我所说,当我运行脚本时,它会打印“0”,但第二个“echo”不会打印任何内容,当然 if 也不起作用。

谁能帮我?

TIA,

鲍勃

scripting bash awk

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

如何跟踪不断增长的目录?

我的系统经常出现磁盘空间不足的情况。我将编写一个脚本来清理变大的目录。通常这些是日志目录。鉴于机器的性质,我不需要保留日志。

我想编写一个脚本来显示所有大小不断增加的目录,这样我就可以确保该列表变为 0。

我在想这样的事情

1. du /
2. wait 24 hrs
3. du /
4. find all instances where the file size increased
Run Code Online (Sandbox Code Playgroud)

它看起来很简单,但我的问题是 du 适用于文件和目录,你不能仅适用于目录。我怎样才能克服这个问题?

scripting linux unix shell bash

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

通过脚本修改正在运行的 KVM 域的 xml 定义

如何通过 ssh 修改虚拟机的 xml 定义?我知道我可以通过登录主机并使用以下命令以交互方式执行此操作:

virsh edit <domain name>
Run Code Online (Sandbox Code Playgroud)

但我想使用在远程主机上运行的脚本自动对 xml 进行修改,然后通过 ssh 在 KVM 机器上执行命令。

据我观察, virsh edit 正在打开默认编辑器(在我的例子中为 vi )供我编辑文件。我想用另一个文本文件中包含的 vm 定义以某种方式覆盖此文件(由 virsh edit 命令交互打开)。

我发现了关于如何使用以下方式将文本通过管道传输到 vi 的线程:

cat <file name> | vi -
Run Code Online (Sandbox Code Playgroud)

但这对我来说不起作用,因为

  1. virsh 正在打开默认编辑器,其中包含我无法控制的参数。(或者至少我不知道如何修改这些参数)
  2. 不同 KVM 设备上的默认编辑器可能不同。

预先感谢您的帮助。

编辑:只是想澄清一下,我没有关闭虚拟机并重新定义它的选项。我想修改正在运行的域。

scripting vi virsh

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

限制 Windows 事件日志大小的正确方法是什么?

我正在寻找使用 PowerShell 或命令行脚本限制 Windows 事件日志大小的最佳方法。我想在应用程序安装期间运行此脚本,以增加安装程序部署的日志的限制。

到目前为止我尝试过使用 power shell 的 limit event log 命令,Limit-EventLog -LogName "logName" -MaximumSize xxMB但是该命令找不到日志。

接下来,我尝试使用安装程序添加“File”和“MaxSize”注册表项:我创建了一个与下的事件日志名称匹配的键SYSTEM\CurrentControlSet\Services\EventLog、名称为“File”的字符串值、数据、日志文件的完整路径,一个名为“MaxSize”的双字值以及我想要设置最大大小的数据值(以字节为单位)。这似乎有效,但是这使得日志以一种有趣的方式显示在事件查看器中。

在此输入图像描述

我还注意到最大日志大小可以直接从事件查看器更改,并且此更改根本不会反映在注册表中。例如,事件日志“Microsoft-Windows-TaskScheduler/Operational”的大小限制为 10MB,但“SYSTEM\CurrentControlSet\Services\EventLog”下没有相应的注册表项

我正在寻找一个能让我获得相同效果的脚本。

scripting powershell windows-event-log

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

删除旧的 Windows 打印作业

在我们的主要 Windows 2003 打印服务器上,我们共享大约 500 台打印机。我们通常有大约 50 个卡住的打印作业。虽然离世界末日还很远,但它让我很烦,我往往会每周花 30 多分钟来寻找和删除卡住的工作。

我真正想要的是删除所有打印机上超过 24 小时的所有打印作业的脚本。

来自 UNIX 背景,我发现 Windows 脚本编写非常混乱。任何关于我如何开始这项任务的建议将不胜感激。任何完整的解决方案都会令人惊叹。;)

干杯,

垫。

scripting windows printer

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

脚本数据库 sql server 2008

我在hosetd sql 2008 服务器上有一个数据库。

我对开发中的架构进行了一些更改,但不想上传它,因为我想保留服务器上的数据。

是否有我可以运行的脚本来备份我的表中的数据,最好也有一种方法来保存 shema。

然后我希望能够从 dev 上传架构更改并从我的备份中恢复所有数据。

我正在寻找一种免费的方法来做到这一点,所以我无法购买任何工具。

scripting database sql-server

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

使用 root 命令编写 Ubuntu bash 脚本

我正在尝试在 Ubuntu 9.04 中编写一个 bash 启动脚本,它将从我的计算机中删除烦人的系统提示音:

#/bin/bash

rmmod pcspkr #remove system beep; also doesnt work without root access
Run Code Online (Sandbox Code Playgroud)

当我重新启动计算机时,它不断回来,我想运行一个启动脚本来消除这个烦恼。但是我不知道如何在 bash 脚本中以 root 身份运行,有人知道如何在 bash 脚本中以 root 身份登录吗?

scripting bash root

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

从命令行删除旧的(非引导)Windows Vista 目录

有没有人有一个好的脚本可以从命令行中删除旧的、非启动的、非活动的 Windows 目录?

scripting windows windows-vista

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

基于时间戳剪切日志文件部分的快速脚本

我正在寻找一个快速脚本来解析一个大的 mail.log,并返回两个指定的时间戳之间的部分。我想在我所有的邮件服务器上运行它,并让他们将相关日志部分复制到一个中央位置以供进一步分析。

我用 bash 写了一些有用的东西,但速度很慢。

有没有人知道已经存在任何东西来实现这一点 - 或者我需要学习 perl 并自己制作一些东西吗?

(我没有把它放在 SO 上,因为我还没有到要编写任何代码的地步——只是在寻找其他人已经在使用的东西)

scripting log-files

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

每次停止时都会启动服务的脚本

我工作的公司有一台服务器,可以监控外部摄像头/监控系统。以下进程继续死亡:PureActiv 视频处理器。

我的团队必须始终使用计算机管理手动重新启动服务。

谁能为我提供一个脚本来检查服务并在服务未运行时重新启动该服务。

以下是所需资料:

系统:Windows Server 2003 Service Edition Service Pack 2 (build 3790) 服务:PureActiv Video Processor Service 位置:“C:\Program Files\PureTech Systems\PureActivDAQServices\Pure.PureLink.VideoProcessor.VideoProcessorService.exe”

谢谢,-jm

scripting windows-server-2003 service

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