我正在寻找一个好的批处理脚本,它可以从 Windows(尽可能多的变体)机器(例如 Windows 临时文件夹、所有用户 IE 临时文件夹等)中快速找到并清理所有已知的安全临时文件夹/文件。我喜欢像 CCleaner(通过 Cleanmgr.exe)这样的 UI 工具,但是当我尝试快速和/或很少参与清理多台计算机时,有一个脚本会很好。
加上脚本,我可以将多个脚本链接在一起。也许一个然后启动各种防病毒和/或恶意软件检测器。
任何人都有一个好的或可以指向一个好的资源?
我想知道我是否递归调用了 shell,有没有一种简单的方法可以找出来?是否有特定于外壳的解决方案?我正在使用 bash。
这个问题可能会成为有史以来最愚蠢的问题,因为我可能错过了显而易见的问题。无论如何,这里是:您可以评估批处理脚本中的表达式吗?例如,我想将两个数字相加并打印结果:
echo 4+2
Run Code Online (Sandbox Code Playgroud)
这将只打印“4+2”,而不是“6”。也许我在 Windows 上使用批处理脚本有点太过分了...
谢谢!
您如何进行转义工作,以便&实际在后台运行第一个命令?
# foo param1 param2 >> run.out &; tail -f run.out
Run Code Online (Sandbox Code Playgroud) chpasswd从面料脚本。另一种选择是在Fabric脚本中使用Pexpect。[xxx.xx.xx.xxx] run: echo "johnsmith:supersecretpassw0rd" | chpasswd。我已经使用Fabric创建了一个 Python 脚本来配置一个新构建的Slicehost Ubuntu 切片。如果您不熟悉 Fabric,它会使用Python SSH2 客户端Paramiko来提供“用于应用程序部署或系统管理任务”的远程访问。
我让Fabric脚本做的第一件事就是创建一个新的管理员用户并设置他们的密码。与Pexpect不同,Fabric 无法处理远程系统上的交互式命令,因此我需要以非交互式方式设置用户密码。目前,我正在使用该chpasswd命令,该命令以明文形式读取用户名和密码。
# Fabric imports and host configuration excluded for brevity
root_password = getpass.getpass("Root's password given by SliceManager: ")
admin_username = prompt("Enter a username for the admin user to create: ")
admin_password = getpass.getpass("Enter …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 cron 作业来保持两个目录同步。我正在使用 rsync。我正在运行一个 rsync守护进程。我阅读了手册,它说:
RSYNC_PASSWORD
Setting RSYNC_PASSWORD to the required password allows you to
run authenticated rsync connections to an rsync daemon without
user intervention. Note that this does not supply a password to
a shell transport such as ssh.
USER or LOGNAME
The USER or LOGNAME environment variables are used to determine
the default username sent to an rsync daemon. If neither is
set, the username defaults to 'nobody'
Run Code Online (Sandbox Code Playgroud)
我有类似的东西:
#!/bin/bash
USER=name
RSYNC_PASSWORD=pass
DEST="myhost::mymodule"
/usr/bin/rsync -rltvvv …Run Code Online (Sandbox Code Playgroud) 无论 grep 是否找到任何结果,我都需要一个显示“是”或“否”的衬里。
我玩过grep -c,但没有成功。
有没有办法确定脚本是否正在等待 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 在写入标准输出时返回时立即返回错误,而不是无限地执行此操作。
我正在尝试制作安装脚本。我想安装一个.msi文件,Python,然后在安装Python后安装其他东西。我已经看到了如何进行命令行安装。但是,msiexec即使安装仍在运行,也会立即返回。如何从批处理脚本检测 msi 安装的完成?
我一直在使用bash我的大部分系统管理任务。我也懂一点perl。
我应该学习 Python还是Perl更适合系统自动化。到目前为止,从我的经验来看,学习 perl 很容易。
scripting ×10
bash ×5
windows ×3
automation ×2
python ×2
batch ×1
batch-file ×1
fabric ×1
files ×1
grep ×1
installation ×1
msi ×1
password ×1
perl ×1
rsync ×1
shell ×1
stdin ×1
windows-xp ×1