Articles of shell

不要在bash中正确运行脚本

我需要通过号码获取界面。 我的脚本: #!/bin/bash interfaces=/root/tt interfaces_with_numbers=/root/tt2 ls -1 /sys/class/net > /root/tt cat -n $interfaces > $interfaces_with_numbers cat $interfaces_with_numbers read number echo $number eth=`cat $interfaces_with_numbers | grep $number | awk '{ print $2 }'` if [[ -d /sys/class/net/$eth ]];then echo "You choose is: $eth" else echo "not found" fi 我有输出: 1 dummy0 2 eno1 3 enp4s0 4 […]

PowerShellvariables错误

你好,请你麻烦这个代码 $cSource = "\\LAP02IT-HAYK\c$\test.rtf" $filepath = "c:\servers.csv" $servers = Import-CSV $filepath Foreach ($server in $servers) { write-host $server $target = "\\$server\C$\Users\Public\Desktop" Copy-Item -Path \\LAP02IT-HAYK\c$\test.rtf -Destination $target; } 我得到了这个输出 @{servers =ast1eam-kslozpl} Copy-Item : The network path was not found At line:8 char:6 + Copy-Item -Path \\LAP02IT-HAYK\c$\test.rtf -Destination $target; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Copy-Item], […]

获取Windows机器的MAC地址

好吧,这不是一般容易回答的问题标题可能意味着… 我需要从运行Windows的机器(从XP到Server2012)获取MAC地址。 我可以使用以下选项: 1)getmac – 总的来说很好,而且它返回MAC地址的格式也适合我,但是这在过去造成了我的问题。 2)WMIC – 总体来说还不错,但也造成了我的问题 而且在性能方面还比较落后(特别是在低规格的机器上)。 3)ipconfing – 从命令输出中检索它的传统方式。 如果有更多的接口存在,可以工作,但parsing输出可能是麻烦的。 所以问题是以下。 为了获得一台机器的MAC地址,以上所有的最佳select是什么? 请记住,我将通过一个shell脚本调用任何实用程序(不pipe是否加上这个等式),而且我正在部署不同的Windows版本(从Professional到POSembedded)。 由于XP不支持Powershell,显然是不可能的。 另外我之所以想避免WMIC,是因为我遇到了可能会导致安装不当的问题(导致重大问题),以及2)因为某些Windows版本(例如embedded式XP)不包含它。 我试图通过使用ARP表获得它,但据我所见,它不会列出本地计算机的MAC地址。 任何有用的提示或想法是受欢迎的。

用连字符正则expression第二和第三个域级别

我有一些聪明的脚本,检查服务器的名称,并获得域名。 例如,我有服务器的名称:example.ru01。 我需要得到:example.ru我的scipt: #!/bin/bash hostname=example.com01 echo $hostname reg0="\(\([a-z0-9_-]*\)\|\([a-z0-9_-]*\.[a-z_-]*\)\)" domain=`expr match $hostname $reg0` echo $domain 没关系。 在输出我有: example.com01 example.com 但是,当我写第三层领域,我有输出: example.com.us01 example.com 所以,我需要另一个正则expression式。 我写了这个: reg0="\(\([a-z0-9_-]*\)\|\([a-z0-9_-]*\.[a-z0-9_-]*\.[a-z_-]*\)\)" 输出: example.com.us01 example.com.us 有用。 但是,当我写第二层域,我有输出: example.com01 example 所以…我可以写一个正则expression式两种types的域?

占位符在bash / shell中,用于不同的linux distr

我有一些问题。 我需要添加在Linux的自动运行,一些脚本。 但是在我的基础设施上,我有一个不同的分歧。 当然,在autorun中添加这个脚本的方式是不同的。 在CentOS中是chkconfig,在debian / ubuntu中是update-rc.d。 所以,我有一些脚本: function autorun () { if [ -f /etc/debian_version ]; then os="Debian $(cat /etc/debian_version)" echo $os update-rc.d ${i} defaults" elif [ -f /etc/redhat-release ]; then os=`cat /etc/redhat-release` echo $os chkconfig –add ${i}" else os="$(uname -s) $(uname -r)" echo $os echo "Other OS. Please check type of autorun in […]

写主机2xselect具有不同值的语句

我正在尝试编写一个获取用户信息的脚本,其中包括有关他们计算机的一些信息。 我面临的问题是,我无法在脚本中编写两个不同的select语句(都写入主机)。 无论他们分开多远,脚本将它们视为一个长时间运行的select语句,并且由于第二个语句中不存在字段,所以它不会打印任何内容。 结果什么都没有被打印。 看例子: Get-ADUser "jDoe" | select Surname, OfficePhone Get-ADComputer "jDoe-01" | select OperatingSystem,DNSHostName Pause 运行代码: Surname OfficePhone ——- ———– John Doe +123456789 Press any key to continue… 有谁知道解决这个问题的方法?

使用PowerShell远程复制PSCP和Copy-Item之间的区别

我有2个窗口服务器。 我需要在服务器A上运行一个PowerShell脚本,这个脚本会将一个文件(在服务器A上)传输到服务器B.什么是最好的(最安全的)方法呢? 我在互联网上发现了两种解决scheme,对于我来说它们之间的区别并不是很清楚。 选项1: Copy-Item Copy-Item -Path \\serverb\c$\programs\temp\test.txt -Destination \\servera\c$\programs\temp\test.txt; 选项2: PSCP (.exe) if(!$pass) {$pass = Read-Host 'Enter Password'} $pscp = "`'C:\Program Files (x86)\PuTTY\pscp.exe`'" "cmd /c ${pscp} -r -pw ${pass} … 选项3:另一个(更好的)选项..?

删除bash,我该如何恢复?

我删除了/bin/bash 。 我打开了terminal,但稍后自动closures。 我是sudo组的普通用户。 我该怎么办? 我很恐慌。 我可以用Python / Perl更改/etc/passwd文件许可权,并将我的用户名中的shell脚本从bash更改为zsh ,然后注销并重新login? 我必须从PHP运行Python / Perl,因为我没有访问terminal。 或者我该怎么做? 这是Ubuntu桌面。

MySQL查询不是从bash执行,而是从MySQL客户端运行

使用UBUNTU 16。 MySQL查询从bash中失败,但从MySQL客户端运行: query=$(cat << EOF CREATE DATABASE \`${mysql_local_database}\` /*!40100 COLLATE \'utf8_hungarian_ci\' */; use \`${mysql_local_database}\`; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES ON \`${mysql_local_database}\`.* TO 'myuser'@'%'; FLUSH PRIVILEGES; EOF ) echo $query mysql -u ${mysql_local_user} -p${mysql_local_pass} -h localhost […]

Bash – 将variables插入string(找不到命令)

我尝试编写一个脚本来从许多服务器获取一些软件的版本。 但是当我尝试的时候,我得到这个错误信息。 bash:Postfix verzio:MariaDB verzio:OS verzio:Java verzio::找不到命令 bash:postfixverzio:找不到命令 空邮件正文; 希望没关系 #!/usr/bin/env bash parancsok=$(<verziok_lekerdezese.sh) while read line do array=($line) echo "IP Addresses : ${array[0]} " ssh -t -t root@${array[0]} ${parancsok} done < ipcimek_test.txt Verziok_lekerdezese.sh: postfixvr = $(postconf -d | grep -m 1 mail_version | cut -d= -f2) mariadbvr = $(mysql -v) osvr = $(cat /etc/redhat-release) javavr […]