arashi1977さんの助け合いフォーラム投稿一覧

助け合いフォーラムの投稿
2023/07/29 コメント
fileコマンドでatimeが更新されない
解決されたようでよかったです。 ご認識の通り、1回目かどうかで変わってくるんですね。なので「全体的な実施手順を開示」していただきたいなというところでした。 そのほかの点についてはすでにtnishita2さんとのやり取りで理解、納得されてるみたいなので私からは特にコメントすることはありません。
2023/07/28 コメント
fileコマンドでatimeが更新されない
はてさて、私と同じ環境ではあると思うのですが、同じ結果になるか確認いただいても良いですか? ``` [root@localhost ~]# cd study/ [root@localhost study]# pwd /root/study [root@localhost study]# findmnt -T $(pwd) TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/rl-root xfs rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota ```
2023/07/27 返信
fileコマンドでatimeが更新されない

うーん、私のところではちゃんと変わりましたが…

[root@localhost ~]# cat /etc/rocky-release
Rocky Linux release 8.8 (Green Obsidian)
[root@localhost ~]# mkdir study
[root@localhost ~]# cd study/
[root@localhost study]# cat /dev/urandom | base64 | head -c 53 > 3705.txt
[root@localhost study]# stat 3705.txt
  File: 3705.txt
  Size: 53        	Blocks: 8          IO Block: 4096   通常ファイル
Device: fd00h/64768d	Inode: 101011101   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-07-27 10:31:17.694303902 -0400
Modify: 2023-07-27 10:31:17.699303852 -0400
Change: 2023-07-27 10:31:17.699303852 -0400
 Birth: 2023-07-27 10:31:17.694303902 -0400
[root@localhost study]# file 3705.txt
3705.txt: ASCII text, with no line terminators
[root@localhost study]# stat 3705.txt
  File: 3705.txt
  Size: 53        	Blocks: 8          IO Block: 4096   通常ファイル
Device: fd00h/64768d	Inode: 101011101   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2023-07-27 10:31:53.690778999 -0400 ←変わっている
Modify: 2023-07-27 10:31:17.699303852 -0400
Change: 2023-07-27 10:31:17.699303852 -0400
 Birth: 2023-07-27 10:31:17.694303902 -0400

元々の3705.txtをどう作ったかとかも含めて、全体的な実施手順を開示していただくことは可能でしょうか?

2023/07/26 返信
選択肢の記述に誤り

解説には「属性名:属性値」となり

と言われてるのは解説のこの部分ですよね?

LDIFファイルの基本的な書式は以下のとおりです。
dn:識別名
属性名:属性値
属性名:属性値

ですが、その後に

なお、属性値は、通常UTF-8のテキストで記載しますが、バイナリデータなどの特殊なデータを指定する場合は「属性名::属性値」のようにし、属性値にはBase64でエンコードした値を指定します。

と記載がありますので、正答とされている選択肢はここの記述の通りだと思うのですが、どうでしょうか?

2023/07/26 返信
ASBRへの経路情報を伝えるLSAタイプはどれか。

誤っている可能性があります。

別の質問と同じなのですが、「誤っている」という判断をされた根拠もあわせて示していただけるとありがたいです。

設問は

ASBRへの経路情報を伝えるLSAタイプはどれか。

となっていますが、解説の【LSAタイプ一覧】のタイプ4にまさに「ASBRへの経路情報」の記載がありますが、そうではなくLSA Type 5であるという判断に至った理由が知りたいです。

2023/07/26 返信
RBのIDについて

逆に質問してみるのですが

答えでは、RBが10.1.3.2となっているのですが、実際は10.1.1.2かと思いますが

この理由はなぜですか?
解説の【ルータIDの選出】に従うとルータIDが10.1.3.2となるのは間違いではないと思うのですが、この解説からルータIDが10.1.1.2になると判断されたポイントも教えていただけるとありがたいです。

2023/07/26 返信
grepとgrep -Eまたはegrepの使い分けについて

ここはぶっちゃけていうと「好きに使ったらいい」って話になるかなと思います。
判断基準というのも変ですが、例えば

  • 通常のgrep(BER)では表現が難しい検索文字列を使う必要がある場合なら egrep / grep -E を使うべき
  • 特に考えず、ただ文字列をヒットさせたいだけなら grep で十分
  • あとは好みや「入力文字数」(grepなら4文字ですが、egrepは5文字、grep -Eだと7文字)

なんかでいいんじゃないかなと思います。

ちなみに速度についてはあまり気にしたことないですが、単純な文字の検索程度なら確かにgrepの方が速いのかもしれませんね。Linuxカーネル6.4.6のソース全体に対してkprintという文字列を検索しただけですが、何回か実行してもgrepに比べてegrep / grep -Eの方が数秒遅かったです。

# time grep -r "kprint" * | wc -l
1

real    1m11.317s
user    0m2.010s
sys     0m4.708s

# time egrep -r "kprint" * | wc -l
1

real    1m18.934s
user    0m1.952s
sys     0m4.645s

# time grep -E -r "kprint" * | wc -l
1

real    1m14.637s
user    0m1.943s
sys     0m4.474s
2023/07/25 コメント
EIGRPのauto-summaryについて
> クラス境界の例をいくつか列挙いただいていますが、これはCiscoがどこかのドキュメントでメジャーネットワーク単位として記載しているという理解で正しいでしょうか。 > このCiscoの定義したメジャーネットワークを知らないと 「メジャーネットワーク」という表現に引っかかっているのだと思うのですが、単純にmajorという英単語で考えると良いです。 https://ejje.weblio.jp/content/major --- 意味・対訳 (大きさ・数量・程度など他のものと比較して)大きいほうの、より大きい、過半(数)の、多数の、(地位・重要性などが)よりすぐれた、より重要な、主要な、一流の、(効果・範囲などが)大きい、目立った --- 昔の「クラスフル」なルーティングしか使えなかった時って、経路は基本的に「クラス単位」で扱うものでした。その前提で考えた時 10.1.1.0/24 10.2.1.0/24 は全て所属する上位の「クラスA(8bitマスク)」単位にまとめられることになります。この時の「上位、より大きい」の意味でmajor networkと表現されているだけですね。 そういう意味で、「ネットワークアドレスが属するクラス単位」=「上位となる(majorとなる)ネットワーク」と考えていただければ良いかなと思います。 ちなみに、上記リンクの中で言及されてるのはここです。カッコの中の「ネットワーク」を「クラス」と理解してもらえればOKです。 > デフォルトでは、メジャーネットワーク(ネットワーク A、B、および C)の境界で集約を実行するために EIGRP が使用されます。
2023/07/15 返信
適切な対応について

設問のここの話ですね。

検索クエリの同時実行数が増えてもパフォーマンスが低下しないようにしたい

オートスケーリングって基本的に「負荷が上昇している」ときにリソースを増やして、「負荷が下降している」ときにリソースを減らすものですよね。DBアクセスにおいて負荷が上がる時って「追加、更新、削除」といったデータの変更に伴うCPUやDiskアクセスが増える場合か「変な検索によってストレージから大量にデータを読み出す」必要がある時なんですよね。ですが設問の状況は「検索クエリの同時実行数が増え」る場合なので、負荷が上がることよりも同時に処理できる数を増やすのが良いかなと。負荷が上がらず、でも同時接続、同時実行は多いという状態だったらオートスケーリングがなかなか発動しなくて効果がないこともありうるかなと思います。

例えばの話ですが

  • 自動改札機は1人処理する単位時間や負荷は大きくないので、利用者が多いことがわかっているのであれば最初から多く設置しておく
  • みどりの窓口は負荷が低い時は1人でやってるが、それぞれの対応ごとにやることや発見枚数や実施する作業が異なるので、負荷が高くて処理待ち(行列)ができたら都度対応者を増やしたり減らしたりする

というのに近いのかなぁと。

2023/07/15 コメント
なぜサーバー宛の全アクセスが拒否されるか
そうですね。参考に以下の記載がありますよ。 ----- 【ACLのルール】 ・条件文の上から順に確認する ・条件に一致した場合は、その指示(permit/deny)に従って処理をして、それより下の条件文は確認しない ・条件文の最後には暗黙のdenyが存在する ・ACLを適用しているルータ自身が発信するパケットは処理対象外
2023/07/15 返信
「各ルータのプライオリティはデフォルトである」からpriorityを変更するという選択肢へ至る考え方について

日本語的な問題ですねぇ。

この問題の「各ルータのプライオリティはデフォルトである。」という一文から、「priority値は変更してはいけない」という条件かと思ってしまいました。

これは単に「現在の状態を表している」だけじゃないですかね。設問の環境について「いや、R1やR2でpriorityがすでに変えられている可能性があるから、priority変更が有効とは限らない」みたいに勝手に想像して判断されたら答えがどれも正解になりうるからつけてる情報じゃないかと。
そもそも設問の文の構成は「この状況において、最適な方法はどれか。なお("OSPFプロセスの扱い方について" また "現在のプライオリティの状態")である」という形なので、「変更してはならない」と読み取るのはちょっと無理があるかなと思います。
変更してはならないという意図なら「また、各ルータのプライオリティはデフォルトのままとする」とかいう表現になるんじゃないかなと思います。
※まさにmadokaabiさんの言われている「問題文の書きっぷりがいけてない」という話ですね。

選択肢にある、「R1のルータIDを「1.1.1.1」にする」を実施した後、「R1およびR2のOSPFプロセスは同時に起動やリセットされるものとする」という条件であれば

これも問題文の表現が変だなぁって話だと思いますが、「R1とR2でOSPFプロセスを起動、リセットする場合は"同時に実施する"」という話じゃないかなと。「設定変更と同時に(起動やリセット)する」とは書いてないですし、R1とR2で設定変更するタイミングがずれてたら(というかそれが割と当たり前ですが)その実施順番で起動、リセットするタイミングが変わるのでそれはそれで困ったことになります(後述)。

この条件付けは単に「起動、リセット後に実行されるDR/BDR選出プロセスが同時に実行されるようにする(片方が先に選出プロセスを完了させてしまっているので、後で実行した側は選出プロセス決定後に参加する形になるので設定によらず意図的にDRを変えられるため)」という「こういうやり方もあるじゃん!」を避けるためかなと思います。
この話はここ見るとわかりやすい記述があります。
https://atnetwork.info/ccna1/ospf3.html

DRの選出は次のルールで決まります。ただし、必ず、期待通りにDR、BDRが選出されるわけでは、ありません。ルータの電源を入れるタイミングも影響してきます。 OSPFのプロセスが起動するまでの間に、既に他のルータがDRに選出されている場合、後から起動(追加)したルータは、いくら、ROUTERID、優先度が高くとも、既に選ばれているDRがダウンするまでDRになれません。

ちなみに

選択肢にある、「R1のルータIDを「1.1.1.1」にする」を実施した後、「R1およびR2のOSPFプロセスは同時に起動やリセットされるものとする」という条件であれば、こちらが正解となるかと思いました。

これは間違ってはないです。最適ではないですが。
設問はあくまで「常にR1がBDR(他のルータがDRになれたら良い)」であって「常にR2がDR(R2が誰にも負けない)」ではないので、ルータIDによる選出でR1がR2に負けるようにするというのも1つのやり方です。ただしルータIDは「OSPFドメインにおいて一意にする必要がある」という前提がありますので「あ、設計上邪魔だな。こいつのルータID変えよ。」ってのはネットワーク的には動くけど、当初設計を変えることへの影響度を考慮すると「最適」ではないと考えられます。
まぁだからpriorityの方が選出プロセスの優先度が高いってことなんだと思います。何かあってもプライオリティ変更すればrouter-id変更する必要がないので。

一意のIDとして使用すべきものを変更するよりも先にできることがあるなら、そちらを優先的に選択するというのが「最適」の判断ポイントになると思いますよ。

2023/07/14 返信
EIGRPのauto-summaryについて

RAに設定されたauto-summaryはRAがEIGRPで広報すると指定した経路を集約する機能だと理解しています。
RAからRBに対して172.16.0.0/16を広報したようですが、これは何と何の経路を集約したのでしょうか?

指定した経路「を」集約するのではなく、指定した経路「に」集約すると理解された方が良いかと思います。
また、 auto-summary は「クラス境界(メジャーネットワーク)を超えるときに、メジャーネットワーク単位に自動的に」集約するものです。クラス境界の例としては

  • 10.0.0.0/8
  • 172.16.0.0/16
  • 172.17.0.0/16
  • 172.31.0.0/16
  • 192.168.0.0/24
  • 192.168.255.0/24

などがあります。
172.16.1.0/24 は 172.16.0.0/16 に含まれますので、「172.16.0.0/16に自動的に集約」されます。自分で意図した範囲に集約する場合は ip summary-address eigrp を使います。

この問題の説明は、以下のシスコのドキュメントも参考になるかと思います。
https://www.cisco.com/c/ja_jp/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/118974-technote-eigrp-00.html#anc62

2023/07/09 返信
”verify-availability”をつけるのとつけないとでどう違うか

set ip next-hop に”verify-availability”をつけるのとつけないとではどう違うのでしょうか?
例えば下記のような形だと”verify-availability”をつけていた回答の形と異なる動作をするのでしょうか?
set ip 172.16.21.3 5 track 1
set ip 172.16.31.4 15 track 2

そもそもそういう設定はできないっぽいですよ。コマンドリファレンスによると、 verify-availability のオプションとして track 指定ができるみたいで、単独の指定は出来なさそうに読めます。
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_pi/command/iri-cr-book/iri-cr-s1.html#wp3480887648

IOS-XEですが、実機で見るとこういう感じでした。

csr#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
csr(config)#route-map A
csr(config-route-map)#set ip ?
  address      Specify IP address
  default      Set default information
  destination  Summary address to advertise
  df           Set DF bit
  global       global routing table
  next-hop     Next hop address
  precedence   Set precedence field
  qos-group    Set QOS Group ID
  tos          Set type of service field
  vrf          VRF name

csr(config-route-map)#set ip next-hop ?
  A.B.C.D              IP address of next hop
  dynamic              application dynamically sets next hop
  encapsulate          Encapsulation profile for VPN nexthop
  peer-address         Use peer address (for BGP only)
  recursive            Recursive next-hop
  self                 Use self address (for BGP only)
  unchanged            Propagate next hop unchanged
  verify-availability  Verify if nexthop is reachable

csr(config-route-map)#set ip next-hop 1.1.1.1 ?
  A.B.C.D  IP address of next hop
  force    Use force for for-us traffic
  <cr>     <cr>

csr(config-route-map)#set ip next-hop 1.1.1.1
2023/07/03 返信
VPNv4アドレスの一意性について

VPNv4アドレスはネットワーク内、つまりMP-BGPのPEルータ間で一意性を持たせる必要はないという理解をしています。

VPNv4アドレス自体は一意性を持たせるのが必要だとは思います。というのは、VPN関係ない一企業のWAN接続のイメージでいう「異なる支店が同じネットワークアドレスをもち、それを広報する」のが適切かという話です。
さらにいうと、PEが管理するVPNv4アドレスには「異なるVPN(利用者)で同じネットワークアドレス(例:192.168.1.0/24)」というものが存在しうるので、各PEで異なるRDを使用することで「ユーザーのネットワークアドレスが重複していてもPEごとに必ず異なるVPNv4アドレスにできる」というのが実現できるわけですね。
「どのPEの配下のどのユーザーのネットワークアドレス」かが特定できるようにするためにVPNv4アドレスが一意になるようにするべきだということです。

ネットワーク内で合わせるべきなのは、RT値やVPN識別ラベルであり、
その情報を用いて、もしPEルータ間でVPNv4アドレスに差異があっても整合性を持たせているという理解をしております。

ここはちょっと違いますね。
RTはBGPのコミュニティ値であって「特定のVPNv4アドレスに対して設定して広報する」際に付与するものであり、必須でつけるべきものではないので「合わせるべき」かどうかは悩ましいですね。合わせるのであれば「VPN/拠点」を識別する目的で揃える感じですかね。例えば「A社の本社とデータセンター」を意味するRT「65000:1」は本社の接続するPEのRD(1:1)とデータセンターが接続するPEのRD(2:1)で広報するA社のプレフィックスには付与するが、A社のデータセンターが接続するPEに接続するB社の本社のRD(2:2)には付与しない(もしくはRT:65000:2を付与するとか)ってやったりします。
そうすることで、今度はA社の支社Xでは「RT:65000:1」が付与されたVPNv4プレフィックスのみを取り込むとかの制御が可能になります。(単純な例ですが、割り当て方やimport/exportの仕方で色々変えることができます)

あ、ちなみにVPN識別ラベルは「各PEが広報する、PEに属するVRF配下のプレフィックス=VPNv4プレフィックス」に対して付与されるものですので、そういう意味でもVPNv4プレフィックスが「一意」になるべきだということにつながります。

つまり、対向のPEルータでも同じRD値を用いる必要はないはずだと私は理解しています。

そうですね、異なるPEでRDを揃える必要はないといえばないですが「VPNv4アドレスが一意となるように」は意識すべきかなと思います。じゃないと「同じプレフィックス(同一VPNに属するネットワーク)が異なるPE上に複数存在する」ということを許容することになってしまいますので…

これは実機で検証するとわかりやすいのですが、ちょっと時間がかかるので…時間が取れて、まだこの議論が続いてるようならサンプル出しますね。

2023/06/29 返信
RSTPのIFとSTPのIFを接続した場合の動作に関して

RSTPがSTPの上位互換だから、RSTPが下位の状態に遷移するというような考え方でしょうか?

そうですね。その認識で良いと思います。

これはすべてのCiscoスイッチでの仕様でしょうか?

全てのCiscoスイッチというか、そもそもIEEE 802.1D/wといった標準規格の話なのでこの規格に準拠した機器ならどれも同じ動作をするかと思います。

2023/06/19 返信
PUTメソッドの意味。「指定したファイルの保存を要求する」だけのものではないのでは?

消去法で考えた方が簡単な気がします。

提示されてるMDMではPOSTについてはこう記載されています。

HTTP の POST メソッドは、サーバーにデータを送信します。リクエストの本文の型は Content-Type ヘッダーで示されます。

PUT と POST との違いは、 PUT がべき等であることです。一度呼び出しても複数回呼び出しても成功すれば同じ効果になる(副作用がない) のに対して、 同じ POST に成功すると、複数回の注文を行うような、追加の効果が出ます。

指定したファイルを保存するリクエストをPOSTで実行すると保存よりも新規追加の動作(指定したファイルではなく新たな別のファイルが作成される)になってしまいますし、それ以外のメソッドは設問に合致しないので、PUTの方がより適切ということなのではないかなと思います。

2023/06/18 返信
コマ問プレミアムLinuC Lv2-202(Ver10.0) nginxの設定と管理

mainはnginx設定全体を意味するコンテキストで、mainの中のhttpコンテキストがHTTPサーバとしての動作を定義するんじゃなかったでしたっけ?
mainの中にはeventsとかmailとかさらに個別の機能ごとのコンテキストがあるので、mainのような一番上のものでは不適切なのではないかと。

コマ問ってWEB問題集の中の問題に対応してるはずなので、nginxの問題について再確認してみると良いかもしれません。

2023/06/17 返信
OSPFのコスト

そうですね。ルーティングテーブル上

172.16.1.0 [110/13] via 192.168.3.2 ...
172.16.2.0 [110/3] via 192.168.3.2 ...

って書いてあるので、

  1. まずネクストホップが192.168.3.0/30の宛先なので RouterD
  2. RouterDへはT3リンクなので、コストが2
  3. 考えやすいように172.16.2.0の方(RouterD直接接続)をみることにする
  4. ルーティングテーブルの [110/3](/の右がコストの合計)から、RouterB-D間のT3分のコスト「2」を引くと残りが「1」
  5. よって172.16.2.0/24へはコスト1(おそらくFastEthernet)で接続していると判断できる。

という話です。172.16.1.0/24のほうも考え方は同じです。

2023/06/17 返信
FIBのネクストホップ情報有無

解説の誤記なんじゃないですかね。

・FIBにはネクストホップのIPアドレスとMACアドレスが載っている
ネクストホップやMACアドレスは隣接テーブルに載っている情報なので誤りです。

選択肢は「Nexthop IP Address AND MAC Address」ですが、MACアドレスは載ってないので間違いとされているのだと思うので、本来は解説は

ネクストホップMACアドレスは隣接テーブルに載っている情報なので誤りです。

としたかったんじゃないかなと。

2023/06/17 返信
SD-Accessのアンダーレイのルーティングプロトコルについて

使用できない場合、それは、どの様な理由からでしょうか。

SD-Access詳しくないので間違ってるかもですが、単にDNA Centerが自動で構成するUnderlayをIS-ISでやるからじゃないでしょうか?
https://www.ciscolive.com/c/dam/r/ciscolive/global-event/docs/2022/pdf/BRKENS-2502a.pdf

2023/06/16 返信
解決と応答の違いについて

こんな感じです。
応答:DNSサーバが生きているかどうかの話
解決:DNSサーバが応答してくれて、でもゼロ回答だった

身近なもので例えるとこんな感じです。

  • 本屋に書籍の取り扱いの有無を問い合わせようと電話したのだが繋がらなかったので、別の書店に電話した(1軒目で応答がないので2軒目に問い合わせた)
  • 繋がった2軒目に問い合わせたが「聞かれたISBNでは該当するものがなかった」と言われたので、問い合わせをやめた(ISBN番号から書籍情報が見つからなかった=解決できなかった)

DNS問い合わせ時のホスト名が上記のISBN番号だと思っていただければ。

2023/06/16 返信
経路の選択

解説のここがポイントですね。

OSPFは帯域幅のみをメトリックの構成要素として使用します。

OSPFは帯域幅が大きいものの優先度をあげ、低いものは優先度を下げてどのリンクを通るのが最適かを選択します。そうすると、「T1=1.544Mbps(1544Kbps)」と比べて56Kbpsでは27倍もの差があるので、「そんな帯域幅の狭いリンクは使えない(正確にいうと、より帯域幅が広いリンクが優先される)」と判断しているだけですね。

2023/06/16 返信
「import A」と「from A import *」の相違有無

違いますねー。Pythonの公式ドキュメントに違いが書いてあります。
https://docs.python.org/ja/3/tutorial/modules.html

この操作は、import の対象となるモジュール名をローカルな名前空間内に取り入れることはありません (従って上の例では、 fibo は定義されません)。
モジュールで定義されている名前を全て import するという変型もあります:

なんのこっちゃ?って感じかもしれませんが単純です。
import したら「importしたパッケージを(パッケージ名指定で)使えるようになる」
from XXX import ZZZ したら「fromのXXXパッケージの中からZZZを自分のものとして使えるようになる」
って違いです。

まだ説明がわかりにくいかもしれませんね。こういうのだとどうでしょう?

$ python3
Python 3.11.4 (main, Jun  7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
◾️versionというオブジェクトはないので何も表示できない
>>> print(version)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'version' is not defined
◾️sysモジュールにはversionが存在するので、importして「sys.version」とすると参照可能になる
>>> import sys
>>> dir(sys)
['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_base_executable', '_clear_type_cache', '_current_exceptions', '_current_frames', '_debugmallocstats', '_framework', '_getframe', '_getquickenedcount', '_git', '_home', '_stdlib_dir', '_xoptions', 'abiflags', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exception', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth', 'get_int_max_str_digits', 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'orig_argv', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'platlibdir', 'prefix', 'ps1', 'ps2', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'set_int_max_str_digits', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdlib_module_names', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions']
>>> print(sys.version)
3.11.4 (main, Jun  7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)]
◾️しかし相変わらずversionというオブジェクトは存在しないので、直接は使えない。
>>> print(version)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'version' is not defined
◾️sysモジュールからversionを内部的に使えるように取り込んでしまえば直接参照可能になる
>>> from sys import version
>>> print(version)
3.11.4 (main, Jun  7 2023, 00:42:15) [Clang 14.0.3 (clang-1403.0.22.14.1)]
◾️しかし、取り込んでないオブジェクト(platform)は、importしたsys経由でしか参照できない
>>> print(platform)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'platform' is not defined
>>> print(sys.platform)
darwin
◾️めんどくさいのでsysの中身を全部取り込んでしまえ
>>> from sys import *
◾️platformも直接使えるようになった
>>> print(platform)
darwin
◾️取り込んでないversion_infoオブジェクトもワイルドカードでまとめて読み込んだので、指定してないけど参照できるようになった。
>>> print(version_info)
sys.version_info(major=3, minor=11, micro=4, releaselevel='final', serial=0)
2023/06/12 返信
oss-db silver 問題ID 12286について

関数が返す値は変わらない

ってことなので、CREATE OR REPLACE FUNCTION sample_func(TEXT) ... の文の実行についての話ではなく、作成された関数を実行( SELECT sample_func() )した際の話ではないでしょうか?
実行例を見てくださいってことですが、sample_func() のパラメータに同じ「佐藤」を渡して実行した時に、データの状態によっては返ってくる値って変わりますよね。WHERE句の条件が同じでもSELECT文実行時のテーブル状態が変われば異なる値になるのは当然かと。

逆に言えば、この関数は「いちいちSELECT文全体を入力しなくても、渡した引数をWHERE staff=にセットして実行してくれる」関数を作ったと言えるかなと。たとえば「日付」を渡したら指定した日付の売り上げを集計して返してくれる関数作ったとして、日付を「今日」にして実行したら開店直後と閉店間際では同じ日付を指定してるのに返ってくる値って変わりますよね。そういう意味じゃないですかね?

2023/06/12 返信
回答の誤り

以下のコンフィグ行に関する話ですよね。

ip address 192.168.20.18 255.255.255.240

255.255.255.240 ってことは、/28なので16個ずつのアドレス領域に分かれるんですよね。(ここはCCNAのアドレス関連の他の問題の解説や参考をご確認いただければと)
ということは、
0-15, 16-31, 32-47 ...
というかたまりになるのですが、ネットワークアドレスはそのアドレス範囲の先頭が該当するので、↑の例だと「0, 16, 32 ...」がネットワークアドレスになります。なので、192.168.20.16はネットワークアドレスとして適切です。

この選択肢が「ネットワークアドレス→IPアドレス」であればご指摘通りではありますが (^^;

戻る