Articles of shell scripting

退出使用nc或ncat进行ldaptesting的代码

我正在尝试编写shell脚本来testing服务器是否能够达到指定的IP和端口。 我正在使用的命令: ncat -w 5 <IP> 636 or 389 > /dev/null 2>&1 < /dev/null | echo $? ncat -w 5 <IP> 636 or 389 > /dev/null 2>&1 < /dev/null | echo $? 问题是当我检查上述两个端口的退出码我收到1。 当我运行它没有/ dev / null我得到一个连接到IP。 ncat -v -w 5 <IP> 636 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to <IP>:636. ^C 问题是如果我使用第二个命令没有/ […]

如何将postgres结果插入到shellvariables中

我想在variables中设置所有这些语法 su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" CREATE DATABASE 所以我写了这个 res=$( su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" ) CREATE DATABASE 但$res是空的 echo $res 我也试图添加" "但没有成功。 如何插入结果 su -l postgres -c "psql -c \"CREATE DATABASE graphite WITH OWNER graphite\"" 到一个shellvariables?

窗口shell(批处理)脚本来列出自昨天以来更改的文件

windows xp dos脚本(.bat)的任何例子,运行时将迭代所有子目录,并列出自从昨天以来更新date的所有文件?

shell脚本修复错误的文件名?

我在我的小公司工作。 尽pipe我有可怕的警告,但是每个人都把文件放在服务器上,名字很糟糕,包括前后空格,坏字符(包括\ ; / + . < > – etc!) 他们通过在Mac上通过AFP访问(FreeBSD / FreeNAS)服务器来实现这一点,所以系统的任何部分都不会抱怨。 有一个脚本,我可以用来通过整个目录树,修复错误的文件名? 基本上用_代替所有的空格和错误的ASCII …如果一个文件已经存在,只要打一个_2或者其他的东西。 我不认为有一种方法可以使系统执行良好的文件约定,是吗?

solaris +操作lltconfig命令

我在Solaris 10机器上工作(例如de1a和du1b )。 关于lltconfig命令,是否可以仅查看一个设备(例如NIC e1000g0 )而不是整个列表? 例如,我只想获得有关e1000g0状态,如下所示: lltconfig ….. Link 0 (e1000g0): Node 0 du1a : 00:21:28:14:76:68 Node 1 du1b : 00:21:28:59:72:C4 permanent 另一个select是操纵lltconfig -a list以获得我想要的(通过awk或sed或ksh等)。 下面是我从lltconfig -a list得到的一个例子(在这种情况下,我得到了整个列表,但我只需要e1000g0状态): lltconfig -a list Link 0 (e1000g0): Node 0 du1a : 00:21:28:14:76:68 Node 1 du1b : 00:21:28:59:72:C4 permanent Link 1 (e1000g1): Node 0 du1a : 00:21:28:14:76:69 Node […]

linux的cron mysqldump:php exec()vs shell脚本vs直接命令在crontab中

系统运行CENTOS 5.8,Apache 2.2.3,MySQL 5.0.95,PHP 5.3.3 我们每天为一些数据库运行mysqldump。 它通过在crontab中调用的php脚本运行。 它们同时运行,并导致服务器负载高峰。 所以我要错开被称为垃圾堆的时代。 我想知道是否直接在crontab中调用命令: 0 3 * * * /usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz 或者通过shell脚本来设置variables。 比调用一个使用exec()的php脚本的负载要less一些: exec( "/usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz" ); 我正在考虑进行一个testing,但是想要检查这是否是一个“无脑的”。 结果 进行一些testing,不同方法的负载没有明显的差异。 我想这可能会对涉及很多进程的不同types的操作产生影响。 正在使用的php文件在我们的svn仓库中被跟踪,所以最好保持这种方式。

configurationUPS apcupsd恶魔运行脚本?

我有一个UPS连接到一个USB电缆的Linux服务器,我安装了apcupsd恶魔,我想知道如何指示它运行一个特殊情况发生时创build的shell脚本? 即电池是25%或剩下的时间是10分钟,所以这种情况可以运行脚本?

无法使用plink在Linux中运行脚本

我无法使用plink.exe在Linux中运行脚本。 我使用我的用户xlogin和脚本是在用户下,我需要sudo y和运行它。 我能够手动命令提示,但不能通过脚本(用于自动化)。 plink.exe -v -t -l user(x) -pw ****** -ssh hostname "sudo su -y /abc/abc/start.sh" 它再次询问密码。 我被卡在那里 Started a shell/command [sudo] password for X:

在另外一台linux服务器上通过shell脚本远程执行命令

我有一个shell脚本,从两个date之间的日志文件中提取详细信息,并在输出上执行一个命令以生成一些报告。日志文件位于不同的服务器上,脚本在不同的服务器上执行。 脚本看起来像: #!/bin/sh time1=$1 time2=$2 echo `ssh -i key user@ip -yes cat file | awk '{if(substr($4,2)>="'$time1'" && substr($4,2)<="'$time2'") print $0;}'` > tmp.log `cat tmp.log | some operation to get detail` 预计产出如下: ip1 date1 – – request1 file1 method1 status1 ip2 date2 – – request2 file2 method2 status2 即多行,但生成的输出是单行包含所有的细节,如: ip1 date1 – – request1 file1 method1 […]

在solaris上监视和报告磁盘使用情况的最佳方法是什么?

df和du提供了总体使用情况,但问题在于它们并没有按用户细分。 有没有这样的工具? 我find了quot但只能在ufs上工作。 有没有一个相当于zfs或nfs? 要分解使用情况,可以编写一个脚本。 那是唯一的select吗? 来自zfs userspace filesystem的输出 $ zfs userspace filesystem cannot access dataset filesystem: dataset does not exist zpool upgrade -v的输出 $ zpool upgrade -v This system is currently running ZFS pool version 32. The following versions are supported: VER DESCRIPTION — ——————————————————– 1 Initial ZFS version 2 Ditto blocks (replicated metadata) […]