Articles of shell

PowerShell散列表有条件的分配

我有一个PowerShell脚本中的散列表(缩写了几个例子,但包含大约8个左右的项目): – 这个哈希表之前的代码构build了$ ivariables,所以我只是提供它应该是这个例子。 这取决于服务器上的SQL版本。 所以SQL 2008 R2默认实例将是“MSSQL10_50.MSSQLServer”。 $i = 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER' $SQLPaths = @{ 'DefaultData'=(Get-ItemProperty "$i\MSSQLServer").DefaultLog; 'RepWorking'=(Get-ItemProperty "$i\Replication").WorkingDirectory } 我的问题/问题是否有一个快捷方式来testing这个registrypath(testingpath)之前哈希表设置值,或尝试? 我有这样的一些键,如果function或设置从未设置,那么该键将不会实际存在。 这是好的,但我怎么能忽略它,如果没有,只是让该值在哈希表中为空?

将所有文件复制到另一个位置

我有一个名为“员工”的文件夹,并在该文件夹中有每个员工名称的子文件夹。 employee >> amar >> akbar >> anthony 每个文件夹都包含1或2个文件。 有大约50名员工。 我想复制所有这些文件到一个新的文件夹“/ home / employee_files”没有子文件夹。 换句话说,当我列出“ls / home / employee_files”时,所有文件都应该可用

快速检查当前用户是否可以访问目标服务器

每当我将Get-Service与目标服务器上没有访问权限的用户一起使用时,需要很长时间才能超时。 这会导致运行脚本所需的时间增加 有没有办法找出用户是否可以访问目标服务器? 我想在脚本中使用这种function来减less必要的系统资源的数量。 任何和所有的帮助,不胜感激。

从日志时间的特定时间打印

我写了一个脚本在日志文件结束前5天打印! 现在我想以某种方式更改它,在文件结束前5小时打印! 这是脚本: for d in \ $(sed -nre 's/.*\[(..)\/(…)\/(….):(..:..:..) .*/\1 \2 \3 \4/p' thttpd.log | date +%s -f-); do echo $d >s1; done time=$(expr 60 \* 60 \* 24 \* 5) EDATE=`tail -1 s1` SDATE=$[$EDATE – $time] sd=`date -d '1970-01-01 UTC '$SDATE' seconds' +"%d/%b/%Y"` echo $sd awk -F'[:[]' -v vd=$sd 'BEGIN{ gsub(/\//," ",vd);"date +%s […]

pipe理每周备份

我写了一个脚本,它将MySQL转储并上传到Amazon S3。 我已经将脚本添加到cronjob,并在午夜2点运行,并将MySQL转储上传到S3。 在上传到S3之前,我使用date和时间戳作为文件名。 我的问题是我需要在S3上pipe理7天的备份,并自动从S3删除第8天的备份文件,因为我使用date和时间戳作为文件名使每个文件都是唯一的,所以我无法出来怎么做。 而且我还必须在另一个EC2实例中恢复最新的备份。

使用Powershell环境variables访问远程服务器path

如何使用远程服务器的$ env命名空间,而不使用Set-Location等cmdlet的networkingpath硬编码? 我有一个通过远程服务器循环的脚本,我试图从一个脚本访问它们的$ env:programfiles等价物,但是这些服务器在不同的位置设置了variables。 基本上得到一个循环,导航 c:\program files \\server1\c$\program files \\server2\c$\programs \\server3\d$\apps 用一些熟悉而简单的东西 Set-Location "${env:programfiles}" 并且让远程服务器的$ env返回一个networkingpath而不是一个盘符。 目前我这样做的方法是使用Invoke-Command获取path并手动构buildpath(用$replace,在path前面追加\\服务器,将“c:\ program files”变成“\\ server \ c $ \ program files“)

PostgreSQL备份WAL ShellScript

我需要做一个脚本来备份我的psql数据库,我想使用wal archive模式,而不是pg_dump。 我从我在网上find的脚本写下了这个: #!/bin/bash #Test Script BackupSQL PG_SQL_CMD=/opt/novell/idm/Postgres/bin/psql PG_SQL_USER=postgres PG_SQL_DB=password PG_SQL_HOST=localhost PG_BACKUP_LABEL='backup_label' PG_BACKUP_START="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_start_backup('$PG_BACKUP_LABEL')\"" PG_BACKUP_STOP="$PG_SQL_CMD -U $PG_SQL_USER -h $PG_SQL_HOST -c \"select pg_stop_backup()\"" echo $PG_BACKUP_START eval $PG_BACKUP_START sleep 2 echo $PG_BACKUP_STOP eval $PG_BACKUP_STOP 我的问题是:当我运行它的脚本提示我的psql密码。 我没有find一种方法来指定psql命令的密码,就像你可以在mysql中使用-p选项一样。 我怎样才能使脚本回答提示?

如果Shell脚本尚未运行,则启动mysql服务器

我有一个shell scipt,并在某些时候我想检查如果mysql正在运行,并启动它,如果不是。 我正在尝试以下,但没有任何运气: set mysqlstatus = `sudo /opt/local/bin/mysqladmin5 ping` if ["$mysqlstatus" != 'mysqld is alive'] then sudo /opt/local/share/mysql5/mysql/mysql.server start fi

Bash:检查文件名的唯一性,重命名或删除文件

我正在用bash在CentOS上工作,我在一个目录中有文件,如下所示: 16948.png 16948_thumb.png 16948-1_thumb.png 16949.png 16948_thumb.png 16949-1_thumb.png 16950-1.png 16950-1_thumb.png 16950-2.png 16950-2_thumb.png 我想要做以下事情: 对于文件列表中存在的每个唯一编号N : 检查是否有文件N-1.png: 如果没有,通过将N.png复制到N-1.png来创build它(总会有一个N.png) 删除N.png文件 检查是否有文件N-1_thumb.png: 如果没有,则通过将N_thumb.png复制到N-1_thumb.png来创build它(总会有一个N_thumb.png) 删除文件N_thumb.png。 不过,我的shell脚本还不够好。 这是就我所知 – 任何人都可以帮忙吗? #!/bin/sh declare -a unique_numbers for filename in ./images do // split filename at – or _ to get N, and then check // whether N is already in list of unique […]

保存为int64的date的PowerShell格式

我正在尝试获取我的AD域中的用户列表及其密码到期。 在PowerShell中,我有这个: get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression="msDS-UserPasswordExpiryTimeComputed"} 结果如下所示: name samaccountname Expiry —- ————– —— longneck longneck 129802700808178073 如何将该Expiry列转换为date时间? 我试过这个: get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression={[datetime]::FromFileTime("msDS-UserPasswordExpiryTimeComputed")}} 但是这只会导致一个空白的Expiry列。 name samaccountname Expiry —- ————– —— longneck longneck 我究竟做错了什么?