获取iscsi设备的目标IP地址

2024-02-10

假设我有一个 iSCSI 设备/dev/sdat,我如何知道其目标的IP地址?

目标驱动程序是 SCST,启动程序是 iSCSI。我只知道一个名为/dev/sdat仅此而已。那么如何获取目标的IP地址呢?


嗯,我并不为此感到自豪,但它完成了工作。至少对于完成工作的一些定义是这样。

基本的想法是这样的。您可以从输出中获取目标 IQNlsscsi -t。 (您将需要lsscsi程序(如果您还没有)。我想您会发现它在任何类型的 SCSI 环境中都是必不可少的。)

# lsscsi -t
[2:0:0:0]    disk    iqn.2009-12.com.blockbridge:t-pjxfzufjkp-illoghjk,t,0x1  /dev/sda
[3:0:0:0]    disk    iqn.2009-12.com.blockbridge:t-pjxfzuecga-eajejghg,t,0x1  /dev/sdb
[4:0:0:0]    disk    iqn.2009-12.com.blockbridge:t-pjxfzufjjo-pokqaja,t,0x1  /dev/sdd
[5:0:0:0]    disk    iqn.2009-12.com.blockbridge:t-pjxfzufnfg-cqikkgl,t,0x1  /dev/sdc

然后,您可以将目标 IQN 输入 iscsiadm 并在输出中查找目标地址。

# iscsiadm -m node -T iqn.2009-12.com.blockbridge:t-pjxfzufjkp-illoghjk | egrep 'node.conn.+address'

node.conn[0].address = 172.16.5.148

把它们放在一起,你会得到一个像这样的脚本。当然,这缺少各种错误处理,并且可能无法处理大约 23 种不同的情况。但是,嘿...它在我的环境中有效!

#!/usr/bin/bash

if [[ -z $1 ]]; then
    >&2 echo "Usage: devip.sh <device>"
    exit 1
fi

iqn=$(sudo lsscsi -t | grep "$1" | grep iqn | awk '{print $3}' | awk -F , '{print $1}')
if [[ -z "$iqn" ]]; then
    >&2 echo "IQN not found for \"$1\"."
    exit 1
fi

sudo iscsiadm -m node -T $iqn | egrep 'node.conn.+address' | awk -F ' *= *' '{print $2}'
exit $?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取iscsi设备的目标IP地址 的相关文章

  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • Linux:如何设置进程的时区?

    我需要设置在 Linux 机器上启动的各个进程的时区 我尝试设置TZ变量 在本地上下文中 但它不起作用 有没有一种方法可以使用与系统日期不同的系统日期从命令行运行应用程序 这可能听起来很愚蠢 但我需要一种sandbox系统日期将被更改的地方
  • 在两次之间每分钟执行一次 Cronjob

    我需要在 crontab 中每分钟运行一个 bash 脚本8 45am and 9 50am每天的 Code 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 8 home pull sh gt ho
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • C++ Boost ASIO 简单的周期性定时器?

    我想要一个非常简单的周期性计时器每 50 毫秒调用我的代码 我可以创建一个始终休眠 50 毫秒的线程 但这很痛苦 我可以开始研究用于制作计时器的 Linux API 但它不可移植 I d like使用升压 我只是不确定这是否可能 boost
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed

随机推荐

  • Proguard 重复的 Zip 条目

    我试图通过 Proguard 运行我的 Android 应用程序 但是这个不断出现 Warning Exception while processing task java io IOException Can t write C User
  • 在 Rails 的会话中存储对象

    我一直被教导在会话中存储对象是一个坏主意 相反 应该存储 ID 以便在需要时检索记录 但是 我有一个应用程序 我想知道它是否是该规则的例外 我正在构建一个抽认卡应用程序 被测验的单词位于数据库中的一个表中 其架构不会更改 我想存储当前在会话
  • 捕获承诺中的拒绝

    我想保留错误func reject 不直接到onError 通过选择 在我总是让func resolve 并确定后的返回结果yield func 如果我想直接前往onError use throw 想知道有什么更好的主意我可以让func r
  • RedirectToAction 到另一个控制器中的操作不起作用

    在我的 mvc3 POST ActionResult 方法中 我有一部分如下代码 if button Save as Pdf RedirectToAction getPdf Pdf resultObtained 当用户单击按钮时 它会将用户
  • Python配置文件:有什么文件格式推荐吗? INI格式还合适吗?看起来很老派

    我需要存储 Python 应用程序的配置 键 值 并且我正在寻找将这些配置存储在文件中的最佳方法 我遇到了Python的配置解析器 http docs python org library configparser html我想知道 INI
  • 使用 rspec 调用特定 url

    我想在 rspec 中创建一个 get 请求 get exec query gt bla id gt something user id gt user 这会构建一个类似以下的 URL user query something exec q
  • 在静默模式下安装 sqlcmd 接受 EULA

    我正在尝试以静默模式安装 sqlcmd 但我不知道如何自动接受 EULA 我尝试安装的文件名为 MsSqlCmdLnUtils msi 从 MS 下载中心下载 这是我到目前为止所尝试过的 通过谷歌找到 msiexec i MsSqlCmdL
  • 隐藏部分溢出的元素

    我正在寻找一种纯 CSS 方法来隐藏已部分溢出其容器的 div 3 请参阅附图 这是一个可行的解决方案 它将完全隐藏不适合其父级固定高度的项目 Codepen https codepen io PhilippeVay pen JyBQOy
  • 用模型方法查询?

    我在仅对活动对象执行查询时遇到问题 我在数据库中没有活动列 相反 在模型游戏上 我有以下方法 def complete self winner true false end 这样如果一场比赛有赢家 complete 将返回 true 我想查
  • 微服务异步操作HTTP响应

    我们正在构建一个微服务应用程序 客户可以在其中创建projects 下图展示了该过程的技术流程 我的问题 API 网关应向客户端返回什么 HTTP 响应 步骤 1 我最初的想法是返回 202 但问题是我不知道Location yet pro
  • SQL - 两个相互依赖的外键

    目前的结构如下 Table RowType RowTypeID Table RowSubType RowSubTypeID FK RowTypeID Table ColumnDef FK RowTypeID FK RowSubTypeID
  • 使用 otool(递归)查找应用程序所需的共享库

    我有一个 Cocoa 应用程序 它使用 otool 来查找应用程序正常运行所需的共享库 例如 假设我在使用 QTKit framework 的应用程序上运行 otool L 我得到了程序使用的共享库的列表 包括 Cocoa framewor
  • 无法加载文件或程序集“Microsoft.Web.Deployment,版本=9.0.0.0”

    我有 VS 2013 Ultimate 我的远程服务器是 IIS 7 5 并启用了远程部署 我已通过 Web Platform Installer 4 6 安装了 Web Deploy Tool 2 1 并且安装成功 当我尝试在发布工具上验
  • 如何告诉 DBD::mysql mysql.sock 在哪里?

    将 DBD mysql 与 DBI 一起使用 尝试连接到数据库时出现以下错误 DBI connect database mydb host localhost someuser failed Can t connect to local M
  • pyqtSlot 的功能[重复]

    这个问题在这里已经有答案了 我刚刚阅读了有关 pyqt5 按钮的教程here https pythonspot com en pyqt5 buttons 代码如下 有一个问题是关于button clicked connect self on
  • Grails - 跨控制器代码,在每个请求上执行

    有没有办法在调用任何控制器操作之前执行某些代码 我需要根据获取参数的值设置会话变量 而不考虑调用哪个控制器 当然 一旦完成此处理 请求需要按照其正常方式到达相应的控制器 操作 Thanks 听起来你想使用filter http grails
  • 树的等级是多少? (如树ADT)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我所知 一个节点的度数是它拥有的子节点的数量 但是 我们如何定义树的度呢 基本上 树的度是它的子节点的总数 即源自它的节点的总数 树的叶
  • HTTP 响应何时完成?

    我正在 NET 中编写一个简单的 HTTP 客户端用于学习目的 我正在使用 NETSocket http msdn microsoft com en us library system net sockets socket aspx类 最终
  • 在工厂模式中使用反射[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在工厂模式中使用反射是一个好的实践吗 public class MyObjectFactory private Party party publ
  • 获取iscsi设备的目标IP地址

    假设我有一个 iSCSI 设备 dev sdat 我如何知道其目标的IP地址 目标驱动程序是 SCST 启动程序是 iSCSI 我只知道一个名为 dev sdat仅此而已 那么如何获取目标的IP地址呢 嗯 我并不为此感到自豪 但它完成了工作