标签: solaris

如果远程TCP端口已打开,请从shell脚本进行测试

我正在寻找一种快速而简单的方法,用于在Shell脚本内部正确测试远程服务器上的给定TCP端口是否打开.

我已经设法使用telnet命令,并且它在端口打开时工作正常,但它似乎没有超时,当它不是,只是挂在那里...

这是一个示例:

l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
  echo "Connection to $SERVER on port $PORT failed"
  exit 1
else
  echo "Connection to $SERVER on port $PORT succeeded"
  exit 0
fi
Run Code Online (Sandbox Code Playgroud)

我要么需要一个更好的办法,还是有办法来强制远程登录超时如果它没有下8秒连接,例如,和(在标准输出返回码,或字符串)返回的东西我可以赶上壳.

我知道Perl方法,它使用IO :: Socket :: INET模块并编写了一个测试端口的成功脚本,但是如果可能的话,我宁愿避免使用Perl.

注意:这是我的服务器运行的地方(我需要从中运行它)

SunOS 5.10 Generic_139556-08 i86pc i386 i86pc

shell port solaris tcp telnet

287
推荐指数
12
解决办法
46万
查看次数

sed编辑文件到位

我试图找出是否可以在单个sed命令中编辑文件,而无需手动将已编辑的内容流式传输到新文件中,然后将新文件重命名为原始文件名.我尝试了这个-i选项,但我的Solaris系统说这-i是一个非法的选择.有不同的方式吗?

unix solaris sed

264
推荐指数
9
解决办法
24万
查看次数

在Bash中获取日期(当前时间的前一天)

如何在Bash中打印当前时间前一天的日期?

unix bash solaris date

157
推荐指数
8
解决办法
25万
查看次数

以便携式方式获取shell中的文件大小(以字节为单位)?

在Linux上,我使用stat --format="%s" FILE,但我有权访问的Solaris没有stat命令.那我应该怎么用?

我正在编写Bash脚本,无法在系统上安装任何新软件.

我考虑过已经使用过:

perl -e '@x=stat(shift);print $x[7]' FILE
Run Code Online (Sandbox Code Playgroud)

甚至:

ls -nl FILE | awk '{print $5}'
Run Code Online (Sandbox Code Playgroud)

但这些看起来都不合理 - 运行Perl只是为了获得文件大小?或者运行2个命令来做同样的事情?

linux bash shell solaris

109
推荐指数
8
解决办法
15万
查看次数

如何获取find命令以使用文件名打印文件大小?

如果我发出find命令如下:

$ find . -name *.ear
Run Code Online (Sandbox Code Playgroud)

打印出来:

./dir1/dir2/earFile1.ear
./dir1/dir2/earFile2.ear
./dir1/dir3/earFile1.ear
Run Code Online (Sandbox Code Playgroud)

我想在命令行上"打印"的是名称和大小:

./dir1/dir2/earFile1.ear  5000 KB
./dir1/dir2/earFile2.ear  5400 KB
./dir1/dir3/earFile1.ear  5400 KB
Run Code Online (Sandbox Code Playgroud)

unix command-line solaris find

89
推荐指数
6
解决办法
14万
查看次数

Windows相当于linux cksum命令

我正在寻找一种计算crc校验和跨平台的方法.

cksum适用于Linux,AIX,HP-UX Itanium,Solaris,cksum在windows中是否有相同的linux命令?

%cksum run.sh
1491301976 652 run.sh
Run Code Online (Sandbox Code Playgroud)

注意:没有第三方工具

linux windows checksum solaris

48
推荐指数
3
解决办法
9万
查看次数

如何设置mailx命令的发件人电子邮件地址?

我正在处理在Solaris服务器上运行的KornShell(ksh)脚本,该脚本将在满足错误条件时发送电子邮件.我通过mailx发送电子邮件.

问题: 如何在mailx命令中设置"发件人"电子邮件地址?

现行代码:

echo ${msg_txt} | mailx -s "Script Failure" ${to_email}
Run Code Online (Sandbox Code Playgroud)

注意:该命令工作正常,但是,"From"是我正在运行脚本的用户的名称,我希望将其用于另一个电子邮件地址.

我怎么做到这一点?

email shell ksh solaris mailx

37
推荐指数
5
解决办法
12万
查看次数

如何确定Solaris系统的IP地址

当我想知道我登录的Solaris机器的IP地址时,我想发出什么命令?

unix ip networking solaris ip-address

30
推荐指数
4
解决办法
17万
查看次数

什么进程正在侦听Solaris上的某个端口?

所以我登录到Solaris框,尝试启动Apache,并发现已经有一个进程正在侦听端口80,而且它不是Apache.我们的盒子没有安装lsof,所以我不能用它来查询.我想我能做到:

pfiles `ls /proc` | less
Run Code Online (Sandbox Code Playgroud)

并寻找"端口:80",但如果有人有更好的解决方案,我全都耳朵!如果我可以在没有root的情况下寻找听力过程,那就更好了.我对shell和C解决方案都持开放态度; 我不介意有一个小的自定义可执行文件随身携带,以便下次出现.

更新:我说的是solaris的通用安装我不是管理员(虽然我有超级用户访问权限),所以从免费软件磁盘安装东西不是一个选项.显然,两者都没有使用针对fuser,netstat或其他工具的特定于Linux的扩展.到目前为止,在所有进程上运行pfiles 似乎是最好的解决方案,不幸的是.如果仍然如此,我可能会发布一个答案,其中包含一些稍微更高效的代码.

unix solaris

28
推荐指数
3
解决办法
14万
查看次数

替代Solaris上的`sed -i`

在Linux sed -i上将修改输入文件.但它在Solaris上不起作用.

sed -i '$ s/OLD/NEW/g' test        
sed: illegal option -- i
Run Code Online (Sandbox Code Playgroud)

我可以sed -i在Solaris上使用什么代替?

unix shell solaris sed

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

标签 统计

solaris ×10

unix ×6

shell ×4

bash ×2

linux ×2

sed ×2

checksum ×1

command-line ×1

date ×1

email ×1

find ×1

ip ×1

ip-address ×1

ksh ×1

mailx ×1

networking ×1

port ×1

tcp ×1

telnet ×1

windows ×1