打印或死亡:如何检查 GPFS 网络安装的文件是否可用

2023-12-20

我有一个 Perl 脚本,用于写入位于 GPFS 网络安装存储点上的文件。有一个标准检查open FILE or die $!.

文件系统宕机了,但是脚本并没有退出;它一直在努力写作。文件系统恢复后,Perl 脚本完成。如何检查文件系统是否可以写入,以及die如果不能呢?

我问这个问题的原因是因为我的 Perl 脚本的最后一行删除了文件的.tmp扩大。这个语句不应该被实现,因为在某一时刻脚本的输出没有到达任何地方。 GPFS 的写入点已关闭,但读取点仍然正常。


print有返回码。大多数人都懒得去检查。但它确实有一个。

http://perldoc.perl.org/functions/print.html http://perldoc.perl.org/functions/print.html

打印 打印字符串或字符串列表。如果成功则返回 true。

所以是的,你可以“打印或死亡”。但您确实需要确保正确地将其括起来,以便“或”与正确的表达式相关联。

print 0 || warn "1 failed";
print 0 or warn "2 failed";

这将给出两个不同的结果,因为前者“测试”零。后者测试的地方print。如果您将打印内容括起来,那么这并不重要,为了清晰起见,这可能是可取的。

所以如果测试 - 你可以这样做:

open ( my $fh, "<", "bad_open" ); #opens read only, so prints will fail. 

print {$fh} 0,1,2 || warn "1 failed";
print {$fh} 1,2,3  or warn "2 failed";

(我本来想建议autodie http://search.cpan.org/~nthykier/autodie-2.26/lib/autodie.pm#print但遗憾的是它没有被应用到print. )

或者,查看 GPFS 的联机帮助页:

http://www-01.ibm.com/support/knowledgecenter/SSFKCN_3.5.0/com.ibm.cluster.gpfs.v3r5.gpfs100.doc/bl1adm_gsmo.htm http://www-01.ibm.com/support/knowledgecenter/SSFKCN_3.5.0/com.ibm.cluster.gpfs.v3r5.gpfs100.doc/bl1adm_gsmo.htm

我可以建议检查您的安装选项吗?您的客户端上是否安装了 GPFS NFS?

看了一下,GPFS不支持soft像 NFS 一样安装。根据设计,一个softmount 将因暂时性错误而导致写入失败,其中hard当挂载离线时,挂载将会阻塞。

hard是默认值,因为这样可以避免数据损坏 - 任何写入操作都会阻塞,直到安装恢复。看起来好像是hanging这可能是不受欢迎的,但请记住,它极大地提高了数据完整性。

我不知道是否有一个简单的测试可以从脚本中测试“停滞”的硬安装。如果您通过 NFS 网络挂载 GPFS,您可能会发现只需将其挂载为soft相反(也许使用单独的安装点并安装两次,如果这会影响其他人)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印或死亡:如何检查 GPFS 网络安装的文件是否可用 的相关文章

随机推荐

  • 将 Java 的 Integer 转换为 Scala 的 Int

    我有一段返回的 Java 代码java lang Integer它可以是null someClass getMyInteger 但是当我在 Scala 类中使用它时 我收到此错误 导致 java lang NullPointerExcept
  • HealthKit:HKObserverQuery 未触发

    我正在尝试做一件非常基本的事情 设置一个 HKObserverQuery 以便我可以知道各个数据点何时发生更改 我已确保用户已授权应用程序使用相关数据点 无论出于何种原因 我可以在每次启动应用程序时触发查询 但当我关闭应用程序 进入 健康
  • __unsafe_unretained 和弱并在 ARC 下分配? [复制]

    这个问题在这里已经有答案了 可能的重复 强 弱 保留 unsafe unretained 分配 https stackoverflow com questions 9784762 strong weak retain unsafe unre
  • 如何在WPF选项卡控件中创建梯形选项卡

    如何在WPF选项卡控件中创建梯形选项卡 我想创建非矩形选项卡 看起来像 Google Chrome 中的选项卡或 VS 2008 代码编辑器中的选项卡 可以用 WPF 样式完成还是必须用代码绘制 互联网上有可用的代码示例吗 Edit The
  • 为什么当参数相等时 std::sort 比较函数必须返回 false?

    在 std sort 中 您可以提供第三个参数 它是列表排序方式的基础 如果您希望第一个参数先出现 则返回 true 如果您希望第二个参数先出现 则返回 false 我遇到了这样的问题 我的谓词函数应该是 无效的比较器 我已将其范围缩小到它
  • @mui/material/styles 和 @mui/styles 之间的区别?

    在 Material UI v5 中 一些 API 使用是从 mui material styles like useTheme 一些API的使用是从导入的 mui styles like makeStyles 我可以只使用一个库中的那些与
  • 将通用结构保存到 redis

    在编写 golang Web 服务器时 我必须使用某种缓存 所以我选择了 redis 我需要某种可以接受任何结构并将其作为值保存到 Redis 的函数 有什么方法可以在不使用的情况下做到这一点interface 作为接收参数或重复太多但仍保
  • 包含至少一位数字的字母数字字符串的正则表达式

    我正在寻找具有以下条件的正则表达式 a 至少 13 个字母数字字符 b 最多 17 个字母数字 人物 c 和至少 1 位数字 该正则表达式满足 a 和 b 它如何也满足条件c a zA Z0 9 13 17 输入文本示例 matching
  • 简单GDI项目的Mingw-w64和TDM-GCC之间的差异

    我需要在 Win64 上为 Win64 构建一个简单的非商业工具 处理 Windows GDI API 无交叉编译 MinGW 对我来说似乎是最好的选择 我过去已经使用过 32 位版本 至于 64 位 你能告诉我以下版本之间的主要区别吗 明
  • CSS:如何仅在支持悬停的设备上允许悬停状态?

    我一直在寻找一种方法来防止触摸设备 模拟 悬停事件 原因是您无法像在桌面上那样使用光标悬停在触摸设备上 这有时会影响用户体验 因为我在网上没有找到任何解决方案 所以我想在这里发布我自己的解决方案 我希望这会对某人有所帮助 我实现了仅将鼠标悬
  • cURL 从 FTPS 站点下载多个文件

    我正在使用 cURL 第一次使用它 从命令行从 ftps 站点下载文件 这就是我需要做的 从 ftps 站点下载与特定文件名匹配的多个文件 例如Filename csv 1998 zip所以我需要下载所有具有名称的文件Filename cs
  • Xcode 单元测试:Xcode 不会在断点处停止

    使用 Xcode 6 3 Beta 2 进行单元测试我遇到以下问题 当我进行单元测试时 单元测试模块中的断点可以工作 但被测试代码中的中断代码不会被忽略 有任何想法吗 我遇到了同样的问题 原因是方案设置 1 编辑您的方案 2 在左侧面板中选
  • 仅在node_modules中跳过库检查

    关于禁用错误输入中的错误有几个问题node modules e g this one https stackoverflow com questions 49906424 rxjs5 typescript typings fail 4991
  • jQuery UI 抖动 - 填充消失

    我遇到了这个小问题 我的包装纸里有一个盒子 我想来回摇晃它 效果很好 但是当我添加填充时 box动画打开时 填充会消失 这 box还有一个box sizing border box所以填充不会影响盒子的大小 如果我删除box sizing
  • 重定向而不更改 URL Apache

    我想将一个 URL 重定向到另一个 URL 而不更改浏览器 URL www example com abc xml 应重定向到 www example com abc xyz index htm file 1 但浏览器应该显示 www ex
  • 暂停代码执行但让 Excel 工作

    我正在制作一个宏 我想做以下事情 打开一个文件 等待文件填满数据 该文件使用单元格公式从外部数据库下载数据 下载大约需要15秒 20 秒后检查是否所有内容都已下载 如果没有 请再等待 10 秒 总共等待最多一分钟 如果所有内容都已下载 请存
  • Android ViewPager setCurrentItem 在 onResume 后不起作用

    我遇到了这个奇怪的问题ViewPager s setCurrentItem position false 工作得很好 然后我切换到另一个活动 在我回到第一个活动后 ViewPager总是以第一个项目结束 尽管我已经添加了setCurrent
  • 如何在 MySql 数据库中存储布尔值数组?

    就我而言 每个 项目 要么有属性 要么没有 这些属性可能有数百个 因此我需要每个项目最多 1000 个真 假位 有没有一种方法可以将这些位存储在项目的一个字段中 如果您正在寻找一种可搜索的方式来执行此操作 那么不行 几种可搜索的方法 涉及超
  • 将 Gatsby JS 站点部署到 Netlify 时,“运行命令时出错:构建脚本返回非零退出代码”

    我最近遇到了 Gatsby JS https github com gatsbyjs gatsby https github com gatsbyjs gatsby 并决定在生成器之上构建我的投资组合网站 所以我分叉了他们的入门网站 gat
  • 打印或死亡:如何检查 GPFS 网络安装的文件是否可用

    我有一个 Perl 脚本 用于写入位于 GPFS 网络安装存储点上的文件 有一个标准检查open FILE or die 文件系统宕机了 但是脚本并没有退出 它一直在努力写作 文件系统恢复后 Perl 脚本完成 如何检查文件系统是否可以写入