国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ システムチュートリアル Linux フォールトトレラントSFTPスクリプト - 再試行失敗した転送は自動的に行われました

フォールトトレラントSFTPスクリプト - 再試行失敗した転送は自動的に行われました

Mar 18, 2025 am 10:48 AM

フォールトトレラントSFTPスクリプト - 再試行失敗した転送を自動的に

導(dǎo)入

最新のネットワークアーキテクチャは、信頼性の低いトランスミッションメディアに基づいて構(gòu)築されています。ルーティングデバイスは、転送されたデータを自由に破棄、破損、再注文、またはコピーできます。 TCP/IPプロトコルスタックのIPレイヤーは、データの精度を保証できないことを理解しています。 IPネットワークは、100%信頼できると主張できません。

TCPレイヤーは、IPレイヤーの上のガーディアンとして機能し、生成するデータが正しいことを確認します。これはさまざまな手法によって達成され、ネットワークの制限を決定するためにデータが意図的に失われることがあります。ほとんどの人は、おそらくTCPがIP接続のないネットワーク(自由にトラフィックを破棄することができる)上の接続ベースのネットワークを提供し、データ配信を保証することを知っています。

興味深いことに、ファイル転送ツールは、切斷されたTCP接続に直面している場合ほど強力ではありません。その祖先や同様のプロトコルと同様に、SFTPプロトコルは、接続が閉じられるTCPエラーから回復(fù)するために機能しません。転送障害の問題を解決するツール(Reget and Report)がありますが、これらのツールは再生されたTCPセッションでは自動的にトリガーされていません(通常、このプロパティを必要とするツールは通常NFSに変わりますが、これには特権とスキーマ構(gòu)成が必要です)。そのようなツールが突然一般的になった場合、ユーザーとネットワーク管理者はecとしています。

SFTPが提供できるのは、その価値がゼロの場合に成功を示す整數(shù)であるリターン狀態(tài)です。ファイル転送の場合はデフォルトでステータスを返すことはありませんが、バッチモードで呼び出された場合のみステータスを返します。このリターンステータスは、POSIXシェルによってキャプチャされ、ゼロ以外の場合は再試行できます。 Windowsでも、Busybox(またはPowerShell、限られた機能)がある場合でも、このチェックはMicrosoftのOpenSSHポートを使用して実行できます。 Posixシェルスクリプトは非常に単純ですが、一般的ではありません。それを変えましょう。

POSIXシェルを使用した障害検出

SFTPフォールトトレランスのコア実裝はそれほど大きくはありませんが、以下のWindows環(huán)境に示すように、バッチモード保証と標準入力処理は長さと複雑さを追加します。

 #!/bin/sh

set -eu#shell strict mode tvar = 1

PARAM#SFTPバッチモードを確認します
終わり

[-n "$ tvar"] && {printf '%s:{0 ##*/} "

[-t 0]#ターミナルでtvar =/dev/nullをしない限り、stdinを保存します
else tvar = "$(mktemp -t sftpft -xxxxxx)"
     cat> "$ tvar"
     [-s "$ tvar"]#stdinが空でない場合にのみ保存する場合、trap "rm -v \" $ tvar \ "" exit abrt int kill#erase rm "$ tvar" 
          tvar =/dev/null
     fi
fi

sftp "$@" &2
終わり

このSFTPラッパーの使用にはいくつかの微妙さがあります。つまり、エラーを検出するためのリターンはデフォルトではありません。データエラーで再試行をトリガーするuntilには、 -bオプションを渡す必要があり、関連するバッチコマンドスクリプトで他のコントロールを使用してエラー応答を構(gòu)成できます。許可が不十分であるために失敗したゼロ狀態(tài)の成功レポートは、次のことを簡単に実証できます。

 ?$ echo 'foobar.txt /var' |
10.11.12.13に接続します。
sftp> put foobar.txt /var
foob??ar.txtを/var/foobar.txtにアップロードします
リモートオープン( "/var/foobar.txt"):許可が拒否されました
0

非生産的な転送の検出には、SFTPの-bオプションが必要です。簡単な回避策は、標準入力のために-bを追加することです。

 ?$ echo 'foobar.txt /var' |。
sftp> put foobar.txt /var
リモートオープン( "/var/foobar.txt"):許可が拒否されました
1

スクリプトは、 -bパラメーターが存在することを明示的に確認します。

スクリプトコンテキストでPOSIX(および派生)シェルを使用するほとんどのユーザーは、上記のif [ ... ]條件構(gòu)造によりよく精通しています。ただし、ほとんどのUNIXシステムには/bin/[ ... ]にプログラムがあり、POSIX testを評価し、狀態(tài)を返します。 if /bin/[ ... ]またはif /bin/test場合、両方のプログラムを直接呼び出すことができます(そして、元のBourneシェルは常にこれを行いますが、ほとんどの最新のシェルの実裝[ ... ] 「速度のために「組み込み」として)を行います)。 SFTPを含むプログラムを?qū)g行できますが、分岐に使用されるifは、ループに使用されるuntil until if 。伝送の問題がある場合は、ループしたいと考えています。

SFTPに送信されたパラメーターは、Korn Shellドキュメントで最もよく説明されているように、 $@ shell変數(shù)を介して親スクリプトに提供されたパラメーターとまったく同じです。

 <code>$@ 與$*相同,除非它在雙引號內(nèi)使用,在這種情況下,為每個位置參數(shù)生成一個單獨的單詞。如果沒有位置參數(shù),則不生成單詞。$@可以用于訪問參數(shù),逐字,而不會丟失NULL參數(shù)或分割帶有空格的參數(shù)。</code>

SFTPセッションが正常に実行されている場合、[ dodoneuntil )內(nèi)のスクリプトは、最初のTCP接続が故障した場合にのみ呼び出されます。エラーメッセージは、コマンドラインの最後のパラメーターと$?に保存された(ゼロ以外の)戻りコードを組み合わせます。 Busyboxを使用してWindowsシステムでデモを行います。ここで、サーバーのイーサネットネットワークケーブルをテストとして切斷し、転送を呼び出して2つの障害を待ち、次に再接続します。

(以下のコンテンツは、元のテキストと同じ長いコードの例と出力を省略します。これらの部分は、元のテキストに既に存在し、擬似オリジナリティのカテゴリに分類されない技術(shù)的な詳細を繰り返すためです。複製を避けるために、ここでは省略されています。)

要するに、記事の擬似オリジナル化は、元のテキストで文の調(diào)整、同義語の置換、段落の再編成を?qū)g行することで完了します。 畫像形式と位置は変更されていません。

以上がフォールトトレラントSFTPスクリプト - 再試行失敗した転送は自動的に行われましたの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxの最良のオープンソース數(shù)學方程式エディター Linuxの最良のオープンソース數(shù)學方程式エディター Jun 18, 2025 am 09:28 AM

數(shù)學的方程式を書くための優(yōu)れたソフトウェアをお探しですか?その場合、この記事では、お気に入りのLinux Distributionに簡単にインストールできる上位5つの方程式エディターを提供します。

SCP Linuxコマンド -  Linuxでファイルを安全に転送します SCP Linuxコマンド - Linuxでファイルを安全に転送します Jun 20, 2025 am 09:16 AM

Linux管理者は、コマンドライン環(huán)境に精通している必要があります。 LinuxサーバーのGUI(グラフィカルユーザーインターフェイス)モードは一般的にインストールされていないためです。SSHは、Linux管理者がサーバーを管理できるようにするための最も人気のあるプロトコルである可能性があります。

PPAとは何ですか?Ubuntuに追加するにはどうすればよいですか? PPAとは何ですか?Ubuntuに追加するにはどうすればよいですか? Jun 18, 2025 am 12:21 AM

PPAは、Ubuntuユーザーがソフトウェアソースを拡大するための重要なツールです。 1. PPAを検索する場合は、LaunchPad.netにアクセスし、プロジェクトの公式Webサイトまたはドキュメントで公式のPPAを確認し、説明とユーザーのコメントを読んでセキュリティとメンテナンスのステータスを確保する必要があります。 2. PPAを追加してターミナルコマンドを使用してsudoadd-apt-repositoryppa:/、そしてsudoaptupdateを?qū)g行してパッケージリストを更新します。 3. PPAを管理してGREPコマンドを介して追加のリストを表示するには、-Removeパラメーターを使用して。リストファイルを削除または削除して、非互換性または更新の停止による問題を回避します。 4. PPAを使用して必要性を比較検討し、擔當者がソフトウェアの新しいバージョンを提供または要求していない狀況を優(yōu)先します。

GOGO -Linuxのディレクトリパスのショートカットを作成します GOGO -Linuxのディレクトリパスのショートカットを作成します Jun 19, 2025 am 10:41 AM

Gogoは、Linuxシェル內(nèi)のディレクトリをブックマークするための注目すべきツールです。 Linuxで長く複雑なパスのショートカットを作成するのに役立ちます。このようにして、Linuxで長いパスを入力または記憶する必要はもうありません。たとえば、ディレクトリがある場合は

RHEL、ROCKY、ALMALINUXにLXC(Linuxコンテナ)をインストールします RHEL、ROCKY、ALMALINUXにLXC(Linuxコンテナ)をインストールします Jul 05, 2025 am 09:25 AM

LXDは、コンテナ內(nèi)または仮想マシンとして実行されるLinuxシステムに沒入型を提供する次世代コンテナおよび仮想マシンマネージャーとして説明されています。 サポートを備えた膨大な數(shù)のLinuxディストリビューションの畫像を提供します

NVM -Linuxで複數(shù)のnode.jsバージョンをインストールして管理する NVM -Linuxで複數(shù)のnode.jsバージョンをインストールして管理する Jun 19, 2025 am 09:09 AM

Nodeバージョンマネージャー(NVM)は、Linuxシステムで複數(shù)のnode.jsバージョンを管理するのに役立つシンプルなBASHスクリプトです。さまざまなnode.jsバージョンをインストールし、インストール用に利用可能なバージョンを表示し、既にインストールされているバージョン.nvを確認できます。

Windows(デュアルブート)と一緒にLinuxをインストールする方法は? Windows(デュアルブート)と一緒にLinuxをインストールする方法は? Jun 18, 2025 am 12:19 AM

LinuxとWindowsにデュアルシステムをインストールするための鍵は、パーティションの設(shè)定とブート設(shè)定です。 1.準備には、データのバックアップと既存のパーティションを圧縮してスペースを作成することが含まれます。 2. VentoyまたはRufusを使用してLinux Boot USBディスクを作成します。Ubuntuをお勧めします。 3.「他のシステムと共存」を選択するか、インストール中に手動でパーティションをかけます( /少なくとも20GB、 /家の殘りスペース、オプションを交換)。 4.ハードウェアの問題を避けるために、サードパーティのドライバーのインストールを確認します。 5.インストール後にGrub Bootメニューを入力しない場合は、ブート修理を使用してブートを修復(fù)するか、BIOSスタートアップシーケンスを調(diào)整できます。手順が明確で、操作が適切に行われている限り、プロセス全體が複雑ではありません。

LinuxにRプログラミング言語をインストールする方法 LinuxにRプログラミング言語をインストールする方法 Jun 23, 2025 am 09:51 AM

Rは、データサイエンス內(nèi)の統(tǒng)計的およびグラフィカルなコンピューティングツールを開発するために設(shè)計された広く使用されているプログラミング言語およびソフトウェア環(huán)境です。これは、Sプログラミング言語と環(huán)境に非常に似ており、Rは代替として機能します

See all articles