AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[bourne-shell](server)

Martin Hope
Brian Walsh
Asked: 2010-04-09 06:36:16 +0800 CST

除了 .profile,shell 环境变量在哪里定义?

  • 0

在 Solaris 10 上使用 Bourne shell,定义了许多不在 .profile 中的环境变量。这些在哪里以及如何定义?

solaris bourne-shell
  • 3 个回答
  • 2069 Views
Martin Hope
Trollhorn
Asked: 2010-01-21 06:04:17 +0800 CST

如何解决路径的正确结局?

  • 0

我有一个持有这条路径的 shell 变量

/usr/share/man/man1/bitmap.1

可能有一个名为 bitmap.1 的文件,但也可能是 bitmap.1.z、bitmap.1.gz、bitmap.1.Z。

现在我想将真实文件传递给一个函数,同时解析正确的文件,比如

function process {
    # do something
}

path="/usr/share/man/man1/bitmap.1"

process ${path}.(z|Z|gz) # here the shell shall resolve the real filename

有没有办法优雅地做到这一点,或者我必须测试 bitmap.1、bitmap.1.z 等是否退出,然后将该文件传递给函数???


忘了说我仅限于 Bourne-Shell,所以手头没有 Brace Expansion -,-。

bourne-shell
  • 4 个回答
  • 93 Views
Martin Hope
Trollhorn
Asked: 2010-01-21 04:28:00 +0800 CST

使用参数扩展删除部分路径...但是如何?

  • 0

我需要删除部分

man1/bmtoa.1.gz

从完整路径

/usr/share/man/man1/bmtoa.1.gz

从而导致

/usr/share/man/

我试过 ${path#[!/]*/*} 和 ${path#/*/*} 但都导致错误的路径。

bourne-shell unix-shell
  • 2 个回答
  • 197 Views
Martin Hope
Lance Roberts
Asked: 2010-01-12 14:07:12 +0800 CST

Bourne shell 脚本的 CRON 作业异常行为

  • 1

我有以下脚本,当我在提示符下键入脚本名称(logscript)时,它会正常运行:

#!/bin/sh
dvar=`date +"%m\/%d\/%y"`
filedate=`date +%b%d%Y`
echo DSS1 > serverlog_${filedate}.txt
grep "^$dvar" oasErrLog >> serverlog_${filedate}.txt
echo CMX1 >> serverlog_${filedate}.txt
ssh GVECMX1 grep "^$dvar" /home/gve/log/oasErrLog >> serverlog_${filedate}.txt
echo CMX2 >> serverlog_${filedate}.txt
ssh GVECMX2 grep "^$dvar" /home/gve/log/oasErrLog >> serverlog_${filedate}.txt
echo XIS1 >> serverlog_${filedate}.txt
ssh GVEXIS1 grep "^$dvar" /home/gve/log/oasErrLog >> serverlog_${filedate}.txt
echo XIS2 >> serverlog_${filedate}.txt
ssh GVEXIS2 grep "^$dvar" /home/gve/log/oasErrLog >> serverlog_${filedate}.txt
scp serverlog_${filedate}.txt "GVEXOSR2:C:/Documents\ and\ Settings/gve/Desktop/logs"
#rm serverlog_${filedate}.txt

样本正常输出为:

DSS1
01/11/10 03:00:08.139 XIS run_backupserver - Startup of XISBACKUP backupserver complete.
CMX1
01/11/10 04:30:05.710 OMNICOMM 30274 - boatimesync: error 3 from boaRx rtu 35 pretry 1 {protocols/boa/boa_command.c:601}
01/11/10 04:30:12.117 OMNICOMM 30274 - CRC (0FFC) does not match calculated CRC (03B0) for remote JRS. headerLength=5 dataLength=0 crcByteOffset=2  functionCode=1  {protocols/boa/boa_io.c:1177}    
CMX2
XIS1
XIS2
01/11/10 03:00:10.563 XIS run_backupserver - Startup of XISBACKUP backupserver complete.

但是当我设置一个 CRON 作业时,它运行并 scps 文件,但内容错误,并且文件不在服务器上(当 rm 行被注释掉时,就像我上面显示的那样)。这是我得到的输出,但请注意:输出会发生变化,它的输出会有所不同:

DSS1
CMX1
01/11/10 001/11/10 04:30:05.710 OMNICOMM 30274 - boatimesync: error 3 from boaRx rtu 35 pretry 1 {protocols/boa/boa_command.c:601}
01/11/10 04:30:12.117 OMNICOMM 30274 - CRC (0FFC) does not match calculated CRC (03B0) for remote JRS. headerLength=5 dataLength=0 crcByteOffset=2  functionCode=1  {protocols/boa/boa_io.c:1177}
CMX2
CMX2
CMX2
CMX2
XIS1
XIS1
XIS1
XIS1
XIS2
01/1101/11/10 001/11/10 03:00:10.563 XIS run_backupserver - Startup of XISBACKUP backupserver complete.

关于手动输入命令时为什么 CRON 作业没有像系统运行它一样运行它的任何想法?

编辑: 我已将脚本修改为循环并使用所有绝对寻址,并使用 SHELL、PATH 和 HOME 变量修改了 CRON 文件,但输出仍然不稳定,现在是脚本:

#!/bin/sh

### internal variable definitions
dvar=`date +"%m\/%d\/%y"`
filedate=`date +%b%d%Y`

# add the prefix of new hosts into the string below
# which will be expanded later into GVE(whatever) while looping
HOSTLIST="DSS1 CMX1 CMX2 XIS1 XIS2"

# main Loop
for SUFFIX in $HOSTLIST
do
  echo $SUFFIX >> /home/gve/log/serverlog_${filedate}.txt
  ssh GVE$SUFFIX grep "^$dvar" /home/gve/log/oasErrLog \
    >> /home/gve/log/serverlog_${filedate}.txt
  echo "\n" >> /home/gve/log/serverlog_${filedate}.txt
done

# transfer and delete file
scp /home/gve/log/serverlog_${filedate}.txt \
  "GVEXOSR2:C:/Documents\ and\ Settings/gve/Desktop/logs"
#rm serverlog_${filedate}.txt

这是输出:

DSS1
01/1201/12/10 03:00:08.323 XIS run_backupserver - Startup of XISBACKUP backupserver complete.
1
01/12/101/12/10 00:00:37.003 agc - dbioLower: DNP prev cmd may still in prog, name NPC_GT3_GOV raiseTimeout 1250 lowerTimeout 2500 curtime(1263286837:3) cmd_time(1263286834:807)
01/12/10 02:14:57.545 OMNICOMM 1562 - CRC (F110) does not match calculated CRC (1110) for remote ARS. headerLength=5 dataLength=10 crcByteOffset=7  functionCode=2  {protocols/boa/boa_io.c:1177}


CMX2


XIS1


XIS1


XIS2
01/12/101/12/10 03:00:10.408 XIS run_backupserver - Startup of XISBACKUP backupserver complete.

请注意某些行上的混乱日期,“1”而不是“CMX1”和被欺骗的“XIS1”。

最终编辑:

看起来 CRON 不知何故催生了多个相互绊倒的进程。在杀死所有适用的进程后,它理顺了。CRON 有错误的多进程生成的历史(如果您对其进行一些网络搜索),所以要小心。

scripting unix cron bourne-shell
  • 2 个回答
  • 931 Views
Martin Hope
DrStalker
Asked: 2009-07-15 22:20:30 +0800 CST

sh 脚本:如果未安装远程文件系统,如何安装它?

  • 3

在 bourne shell 脚本 (#!/bin/sh) 中,如何检查远程 NFS 共享是否已挂载,如果未挂载,则挂载它?目前,我有一组丑陋的 cat、greps 和 ifs 使用“mount”的输出,但它似乎并没有做可靠的工作。

nfs shell bourne-shell
  • 9 个回答
  • 17047 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve