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 / 问题 / 36432
In Process
Kyle
Kyle
Asked: 2009-07-07 07:36:34 +0800 CST2009-07-07 07:36:34 +0800 CST 2009-07-07 07:36:34 +0800 CST

svnstat 脚本

  • 772

所以我正在构建一个 shell 脚本来检查我们所有相关的 svn 存储库,以便在 svnstat 中进行分析。我已经让所有这些手动工作,现在我正在我的 Vista 笔记本电脑上的 cygwin 中编写一个 bash 脚本,因为我打算在某个时候将它移动到 Linux 服务器。

编辑:我放弃了这个并写了一个简单的 .bat 脚本。我会以其他方式找出 Linux 部署。

编辑:添加了 sleep 30 和 svn log 命令。我现在可以用 svn log 命令判断它没有进入 svn 日志……这一次,它执行了应用程序,运行了日志,然后检查了数据库,然后冻结了。这次我把sleep 30放在log前后。

co2.sh

#!/bin/bash
 function checkout {
        mkdir $1
        svn checkout svn://dev-server/$1 $1
        svn log --verbose --xml >> svn.log $1
        sleep 30
}


cd /cygdrive/c/Users/My\ User/Documents/Repos/wc

checkout Applications
checkout Database
checkout WebServer/www.mysite.com
checkout WebServer/anotherhost.mysite.com
checkout WebServer/AnotherApp
checkout WebServer/thirdhost.mysite.com
checkout WebServer/fourthhost.mysite.com
checkout WebServer/WebServices

它在大多数情况下都可以工作 - 但由于某种原因,它倾向于在几个存储库之后停止工作,通常是在完成一个存储库之后,然后再转到下一个存储库。当它失败时,它不会自行恢复。我试过注释掉 svn 行,当我这样做时,它会进入并创建所有目录就好了 - 所以不是那样。

我正在寻找方向以及直接的建议。Cygwin 对我来说非常稳定,但我最近确实开始使用本机 rxvt 而不是“cmd.exe 窗口中的 bash”。我不认为这是问题所在,因为我在远程系统上运行了一整夜,而 rxvt 似乎并不介意。此外,我还没有在 cygwin 中编写任何 bash 脚本,所以我想这可能不被推荐;虽然我不明白为什么不。我不想要所有的 WebServer,因此我只检查某些这样的文件夹。

我怀疑是什么东西挂了 svn 结帐。这里有什么想法吗?

编辑:这次当我按 ctrl+z 取消时,我忘记了我在 Windows 上并输入 ps 以查看作业是否仍在运行;正如你所看到的,周围有很多svn进程......奇怪。

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ 

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ jobs
[1]-  Stopped                 bash co2.sh
[2]+  Stopped                 ./co2.sh

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ kill %1

[1]-  Stopped                 bash co2.sh

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ 
[1]-  Terminated              bash co2.sh

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ 

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ 

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ ps
      PID    PPID    PGID     WINPID  TTY  UID    STIME COMMAND
     7872       1    7872       2340    0 1000   Jun 29 /usr/bin/svn
     7752       1    6140       7828    1 1000   Jun 29 /usr/bin/svn
     6192       1    5044       2192    1 1000   Jun 30 /usr/bin/svn
     7292       1    7452       1796    1 1000   Jun 30 /usr/bin/svn
     6236       1    7304       7468    2 1000   Jul  2 /usr/bin/svn
     1564       1    5032       7144    2 1000   Jul  2 /usr/bin/svn
     9072       1    3960       6276    3 1000   Jul  3 /usr/bin/svn
     5876       1    5876       5876  con 1000 11:22:10 /usr/bin/rxvt
      924    5876     924      10192    4 1000 11:22:10 /usr/bin/bash
     7212       1    7332       5584    4 1000 13:17:54 /usr/bin/svn
     9412       1    5480       8840    4 1000 15:38:16 /usr/bin/svn
S    8128     924    8128       9452    4 1000 17:38:05 /usr/bin/bash
     9132    8128    8128       8172    4 1000 17:43:25 /usr/bin/svn
     3512       1    3512       3512  con 1000 17:43:50 /usr/bin/rxvt
I   10200    3512   10200       6616    5 1000 17:43:51 /usr/bin/bash
     9732       1    9732       9732  con 1000 17:45:55 /usr/bin/rxvt
     3148    9732    3148       8976    6 1000 17:45:55 /usr/bin/bash
     5856    3148    5856        876    6 1000 17:51:00 /usr/bin/vim
     7736     924    7736       8036    4 1000 17:53:26 /usr/bin/ps

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ jobs
[2]+  Stopped                 ./co2.sh

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ 

这是关于挂起的 svn 程序的 PID 的 strace,它已经这样好几个小时了。看起来它只是无所事事。我一直怀疑服务器上的某些中断导致了这种情况;svn 有我不知道的锁定机制吗?

Kyle Hodgson@KyleHodgson-PC ~/winUser/Documents/Repos
$ strace -p 7304
**********************************************
Program name: C:\cygwin\bin\svn.exe (pid 7304, ppid 6408)
App version:  1005.25, api: 0.156
DLL version:  1005.25, api: 0.156
DLL build:    2008-06-12 19:34
OS version:   Windows NT-6.0
Heap size:    402653184
Date/Time:    2009-07-06 18:20:11
**********************************************
svn bash cygwin
  • 3 3 个回答
  • 806 Views

3 个回答

  • Voted
  1. Zac Thompson
    2009-07-12T11:54:27+08:002009-07-12T11:54:27+08:00

    我偶尔会在大型结账时遇到服务器超时问题。您应该在服务器日志中看到这一点(我在 apache httpd 下运行,我相信它在错误日志文件中)。

    建议您捕获 svn checkout 命令的输出(svn checkout svn://dev-server/$1 $1 > svncolog.txt 2>&1)。

    如果这是问题(或者即使不是),这可能会受到您在 cygwin 下使用的 svn 客户端版本的影响(您只是使用 cygwin 包吗?)——如果没有,请尝试升级到最新版本t 已经,或者尝试安装非 cygwin 命令行客户端并在脚本中使用它。

    我还不得不指出,此时您的 bash 脚本非常简单:您可以使用 cmd(批处理)脚本轻松地对其进行测试,从而将 cygwin 排除在外。

    • 1
  2. pgs
    2009-07-07T07:57:11+08:002009-07-07T07:57:11+08:00

    疯狂猜测:cygwin或windows是否限制连接数?包括关闭时的TIME_WAIT状态?sleep 60结帐后尝试插入。

    • 0
  3. pjz
    2009-07-07T20:37:23+08:002009-07-07T20:37:23+08:00

    调试建议:

    • 将 -x 添加到顶部的 #!/bin/bash 中,以便在脚本中运行命令时对其进行跟踪
    • 如果你有闲置的进程,通过在它们的 PID 上运行 strace -p 来找出它们挂着的东西
    • 如果可能的话,看看它是否在 svn 服务器上本地工作,以解决网络问题
    • 0

相关问题

  • 使用 Subversion 部署应用程序

  • 在 Windows 上使用 SVN 自动部署?

  • 将 SVN 服务器/存储库从 Linux 迁移到 Windows 有什么问题?

  • 在 OpenSuse 或 Ubuntu for Linux 新手上安装 Subversion

  • 如何为 SVN 提供透明的备份服务器

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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