标签: scripting

如何循环队列检查代码?

可能的重复:
当后缀队列为空时断开调制解调器

此脚本代码检查后缀邮件队列是否为空,如果为真,它将断开我的调制解调器。

#!/bin/sh
postqueue -p|grep empty
if [ $? -eq 0 ]; then
  killall wvdial
fi
Run Code Online (Sandbox Code Playgroud)

我需要根据需要多次运行它,直到邮件队列变空。

我怎样才能循环它?

也许放置一个else返回以从postqueue -p|grep empty行开始执行脚本?

我知道它可以很简单,但我在 bash 脚本方面不是很擅长,所以我需要帮助来完成这段代码。

scripting bash queue

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

创建类似于当前用户的新 AD 帐户

我一直在研究一个 PS 脚本,它会提示我输入几个条件,然后创建一个 Exchange/AD 帐户。一切顺利,但我在想,是否有一个命令可以创建一个类似于另一个用户的新用户?通常在我们的组织中,大多数用户的设置与他们部门中的其他用户非常相似。因此,如果 John Doe 从会计开始,基本上我会将他设置为类似于已经在会计中的 Jane Smith。他的头衔可能略有不同(会计师 I 与会计师 II),但其他项目如他所在的楼层、他在 AD 中的组等都是相同的。是否有一个 PS(或其他)命令会说“Add-User -like Jane”或者我可以说的东西,“创建新用户,保持 -description -location -ADGroups 与用户 Jane 相同”,

这可能有点牵强,但似乎一旦完成,我就可以更快、更有效地设置这个人。欢迎任何想法,谢谢!

scripting powershell active-directory

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

什么应用程序用于运行 cmd 脚本?

我正在本地组策略中创建应用程序白名单,并且需要能够运行 cmd 脚本文件。简单地将cmd.exewscript.exe、 或cscript.exe加入白名单不会产生任何影响。我的脚本文件有.cmd扩展名。是否有处理.cmd脚本文件的不同应用程序?

scripting windows-xp group-policy windows-command-prompt

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

多次尝试该命令

我需要执行一个命令并检查它是否成功。如果出现错误,我应该再试一次,以下代码按预期工作。

但是如果我需要尝试相同的命令 3 或 4 次直到它成功执行怎么办?if / else 子句将变得非常复杂。

some command

if [ $? -eq 0 ];then
echo "success"
else 

echo "failed first attempt trying again"

some command

if [ $? -eq 0 ];then
echo "success in second attempt"
else
echo "failed second attempt"
fi

fi
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来编写一个脚本,在退出前尝试该命令 4 次?

scripting shell shell-scripting

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

关于编写将大量文件从一台 Linux 主机移动到另一台的脚本的建议

我有几个 TB 和数千个文件,我需要通过网络从一台 Linux 主机移动到另一台。我想获得有关如何编写脚本的建议,请记住以下几点:

  • 要移动的文件将适合日期配置文件(即“早于”x 年)
  • 一个文件的失败不应阻止其余文件的移动 (continue_on_error) 并应在日志文件中注明
  • 移动成功后应自动删除源主机上的文件
  • 源主机上的目录结构包含许多不能移动的文件,因为它们不适合日期配置文件。不应触及这些文件
  • 脚本应该在没有用户干预的情况下连续运行直到完成
  • 文件是顺序移动还是并行移动并不重要

xargs 和 Rsync 会很好,除非它似乎不提供在成功复制后“删除”源文件的能力。

scripting linux

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

如何通过脚本或自动化关闭 Windows 7 防火墙?

这是关于在将机器加入域之前在机器上工作的问题,虽然我很想依赖 GPO,但目前这不是一个选项。

在我工作的环境中,防火墙策略是使用来自 Total Endpoint Solution 的第 3 方防火墙应用程序,因此我必须禁用默认的 Windows 防火墙顶部以防止冲突。我使用在想象过程结束时运行的脚本或在我没有重新成像的系统上手动执行此操作。有一段时间,我能够使用以下方法进行管理:

netsh advfirewall set allprofiles state off
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,这停止了工作。所以,我发现我需要清除本地安全策略(手动):

Local Security Policy MSC > Windows Firewall with Advanced Security
Right-Click Windows Firewall with Advanced Security - Local Group Policy Object
Clear Policy
Run Code Online (Sandbox Code Playgroud)

这是我用来避免手动执行的脚本:

secedit /configure /db reset /cfg securityprofile
Run Code Online (Sandbox Code Playgroud)

这两个步骤的组合工作了大约一个月,然后,没有明显的原因,它停止工作。

我开始测试注册表黑客来实现我所需要的,它给了我混合的结果。我有两套带有我需要更改的配置文件的密钥;对于本地配置文件:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile]
"EnableFirewall"=dword:00000000
Run Code Online (Sandbox Code Playgroud)

对于域配置文件:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]
"EnableFirewall"=dword:00000000
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是本地配置文件在防火墙打开的情况下不断重新生成原始设置。我试过了:

  • a) 应用两个注册表黑客
  • b) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

  • a) 应用本地策略注册表黑客

  • b) 重启
  • 结果在新成像的机器上)没有运气
  • 用于测试的旧机器上的结果)很好

  • a) 使用 …

scripting windows-7 vbscript windows-firewall windows-registry

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

如何永久设置ip地址

这听起来可能有点奇怪,但我尝试使用命令行而不是编辑器在 Ubuntu 中永久设置 IP 地址。

我的想法是提供服务器并只输入一次 ip 地址,脚本会处理这个问题。

我只是无法想象那里没有任何东西可以写

ifconfig eth1 10.1.1.1 netmask 255.255.255.0 up
Run Code Online (Sandbox Code Playgroud)进入/etc/network/interfaces文件。

networking scripting linux ubuntu interface

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

Linux:如何获取机器的 IP 地址?

我正在使用 Linux CentOS 6.4 。

我正在编写一个 shell 脚本,我需要提取机器的 IP 以便在脚本中使用它。如何找到机器的IP?

我正在寻找“最佳”方式,因为我知道有几种方法可以获取 IP 地址。

谢谢

scripting linux ip

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

批量导入 AD powershell

我正在尝试使用 powershell 将员工列表导入 AD。该脚本需要更新现有的 AD 对象。

我遇到的问题是,有些用户会有手机号码,有些是内部号码,有些只是扩展名,当我以最基本的形式运行 Set-ADuser 命令时,只要值为空,它似乎就会失败。

我不擅长脚本,谁能向我解释为什么下面的脚本不起作用?如果是这样,有人可以建议如何使其工作吗?干杯

Import-module ActiveDirectory

$CSVPath = "c:\scripts\ictdepartment2.csv" 
$csvData = Import-CSV $CSVPath -delimiter "," -Header ("SamaccountName","identity","Title","Company","Department","Description","Office","OfficePhone","IPPhone","MobilePhone") 


##

foreach ($line in $csvData) 
{
$accountTable = @{ 
'SamaccountName'= $line.SamaccountName 
'identity'= $line.identity
'title'= $line.title 
'company'= $line.company 
'department'= $line.department 
'description'= $line.description 
'office'= $line.office
'officephone'= $line.officephone 
'IPPhone'= $line.ipPhone 
'mobilephone'= $line.mobilephone 
}
}

##

ForEach($line in $csvData) 
{
$SamaccountName = $line.SamaccountName
$identity = $line.identity
$title = $line.title 
$company = $line.company 
$department = $line.department 
$description = $line.description 
$office = $line.office …
Run Code Online (Sandbox Code Playgroud)

scripting powershell active-directory

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

如果条件允许,Crontab 会影响 bash 脚本?

我在这里有点困惑,并不确定如何调试它。我有一个自己编写的 bash 脚本,用于检查 samba 共享是否处于活动状态,如果没有,则向我发送电子邮件。

脚本在 /root/SKRIPTS/ 中,权限如下所示:

-rwxr-xr-x   1 root  wheel   281 Nov  8 08:54 test_samba_shares.sh
-rwx------   1 root  wheel    39 Nov  7 13:56 smbclient.cred
Run Code Online (Sandbox Code Playgroud)

.sh 脚本的内容是这样的:

smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup

if [ $? -eq 0 ]
then
    echo "Backup_* mounted, nothing to do"
else
    echo "Subject: Samba has failed" | /usr/sbin/sendmail -v mail@localmail.server
fi

return 1;
Run Code Online (Sandbox Code Playgroud)

/etc/crontab 看起来像这样(仅限条目)

10 1 * * * root /root/SKRIPTS/test_samba_shares.sh
Run Code Online (Sandbox Code Playgroud)

问题是,如果我以 root 身份运行它,它就可以完美运行。但是每天晚上我都会收到一封电子邮件,说 samba 失败了,表明 cron 脚本以某种方式进入了 else …

scripting linux bash cron

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