すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:probe

最終更新日:Aug 28, 2024

このトピックでは、プローブ コマンドを実行して、ローカルクライアントとObject Storage Service (OSS) 間のネットワーク接続の例外を検出し、アップロードとダウンロードの帯域幅を確認し、ローカルシンボリックリンクのステータスを取得します。

使用上の注意

アップロード帯域幅を確認するには、oss:GetObjectoss:PutObject、およびoss:DeleteObject権限が必要です。 ダウンロード帯域幅を確認するには、oss:GetObject権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

コマンド説明

probeコマンドを実行して、ローカルクライアントとOSS間のネットワーク接続の例外を検出し、アップロード帯域幅とダウンロード帯域幅を確認できます。 このコマンドを実行して、多数のシンボリックリンクのステータスをアップロードする前に確認することもできます。

  • ネットワーク例外の検出

    ossutilは、オブジェクトをアップロードまたはダウンロードして、ローカルクライアントとOSS間のネットワーク接続のステータスを確認します。 ネットワーク例外を検出したときに指定したパスにオブジェクトをアップロードまたはダウンロードするには、オブジェクトの名前を指定することを推奨します。 ネットワーク例外を検出するだけでよい場合は、オブジェクト名を指定せずにコマンドを実行できます。 ossutilは、検出用の一時オブジェクトを生成し、ネットワークが検出された後にオブジェクトを削除します。

  • アップロードとダウンロード帯域幅の確認

    このコマンドを実行してアップロードとダウンロードの帯域幅を確認すると、OSSはローカルデバイスのCPUとネットワーク帯域幅に基づいて、推奨数の同時アップロードとダウンロードタスクを提供します。 推奨される同時タスク数を使用して、ネットワーク帯域幅の使用量を最大化できます。

  • ローカルシンボリックリンクのステータスを確認する

    多数のシンボリックリンクをアップロードする場合、リンクの1つに異常が発生すると、アップロードが中断されます。 ローカルシンボリックリンクのステータスをアップロードする前に確認することを推奨します。 シンボリックリンクの1つに異常がある場合は、リンクをアップロードする前に問題を修正してください。

probeコマンドを実行した後、プロシージャとタスクの結果を表示できます。

  • オブジェクトのアップロードまたはダウンロードによるネットワーク例外の検出

    • チェックマーク (√) は、チェック結果が正であることを示す。 × 印は、チェック結果が否定的であることを示す。

    • 検出が成功すると、アップロードまたはダウンロードされたオブジェクトのサイズ、アップロードまたはダウンロードタスクの完了時間、オブジェクトがアップロードまたはダウンロードされたパスなど、アップロードまたはダウンロードタスクに関する情報が返されます。

    • 検出に失敗した場合、ossutilはエラーの原因またはエラーコードを返します。これはエラーのトラブルシューティングに使用できます。

      エラーコードの詳細については、「概要」をご参照ください。

    • 検出が完了すると、ossutilはインストールディレクトリにlogOssProbe + DetectionCompletionTime.logという形式のログファイルを作成します。 ログファイルには、probeコマンドに関する詳細情報が含まれています。

  • 特定のアイテムを確認する

    probeコマンドを実行してアップロードとダウンロードの帯域幅、またはローカルのシンボリックリンクのステータスを確認すると、チェック結果と提案が表示されます。

オブジェクトをアップロードしてネットワーク接続ステータスを確認し、レポートを生成する

ossutilは、オブジェクトをバケットにアップロードすることで、ローカルクライアントと指定されたバケット間のネットワーク接続ステータスを確認できます。

  • コマンド構文

    ossutil probe {-- upload [file_name]} {-- bucket bucket_name} [-- object object_name] [-- addr domain_name] [-- upmode]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    データ型

    必須

    説明

    -- upload

    /

    課金されます

    オブジェクトをアップロードしてネットワーク接続検出を実行するように指定します。

    file_name

    String

    課金されません

    バケットにアップロードするローカルファイルのフルパス。 このパラメーターを指定しない場合、ossutilは一時ファイルを生成し、ファイルをアップロードすることでネットワーク接続を検出します。

    -バケット

    String

    課金されません

    バケットの名前です。

    -- object

    String

    課金されません

    アップロードするオブジェクトの名前。 コマンドでこのパラメーターを指定すると、アップロードされたオブジェクトは指定された名前を使用して指定されたバケットに保存されます。 コマンドでこのパラメーターを指定しない場合、ネットワーク接続の検出が完了した後、アップロードされたオブジェクトは削除されます。

    -- addr

    String

    課金されません

    ネットワークアドレスを指定します。 ossutilはping操作を使用して、ローカルコンピューターと指定されたアドレス間のネットワーク接続を確認します。

    デフォルト値: www.aliyun.com

    -- upmode

    String

    課金されません

    オブジェクトのアップロードに使用されるメソッド。

    有効な値:

    • normal (デフォルト): オブジェクトはシンプルアップロードを使用してアップロードされます。

    • append: オブジェクトは、追加アップロードを使用してアップロードされます。

    • multipart: オブジェクトはマルチパートアップロードを使用してアップロードされます。

  • サンプルコマンド

    • ランダムなオブジェクトをアップロードし、ネットワークアドレスを指定してネットワークをチェックします

      この例では、オブジェクトがアップロードされるバケットの名前はexamplebucketで、確認するネットワークアドレスはaliyun.comです。 サンプルコマンド:

      ossutil probe --upload --bucket examplebucket --addr aliyun.com

      サンプル出力:

      begin parse parameters and prepare file...[√]
      begin network detection...[√]
      begin upload file(normal)...[√]
      
      *************************  upload result  *************************
      upload file:success
      upload file size:143360(byte)
      upload time consuming:456(ms)
      (only the time consumed by probe command)
      
      upload object is oss-test-probe-1716280906324488100-quky8a902r
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521164146.log
    • デフォルトのシンプルアップロードモードで指定したオブジェクトをアップロードしてネットワーク接続を確認し、検出完了後にアップロードしたオブジェクトを削除します

      この例では、example.txtファイルがD:\localpathからexamplebucketにアップロードされます。 サンプルコマンド:

      ossutil probe --upload D:\localpath\example.txt --bucket examplebucket 

      サンプル出力:

      begin parse parameters and prepare file...[√]
      begin network detection...[√]
      begin upload file(normal)...[√]
      
      *************************  upload result  *************************
      upload file:success
      upload file size:9(byte)
      upload time consuming:366(ms)
      (only the time consumed by probe command)
      
      upload object is oss-test-probe-1716281191298397500-hi8237d15e
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521164631.log

オブジェクトURLからオブジェクトをダウンロードしてネットワーク接続を確認し、レポートを生成する

ossutilは、オブジェクトURLに基づいてバケットからオブジェクトをダウンロードすることにより、ローカルクライアントとバケット間のネットワーク接続を確認できます。

  • コマンド構文

    ossutil probe {--download} {--url http_url} [--addr=domain_name] [file_name]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    データ型

    必須

    説明

    -- ダウンロード

    /

    課金されます

    オブジェクトをダウンロードしてネットワーク接続チェックを実行するように指定します。

    -- url

    String

    課金されます

    ダウンロードするオブジェクトのURL。 ossutilはこのURLを使用して、オブジェクトをローカルディレクトリにダウンロードします。

    • ダウンロードするオブジェクトのアクセス制御リスト (ACL) がパブリック読み取りの場合、このパラメーターをオブジェクトのURLに設定します。 例: https://examplebucket.oss-cn-beijing.aliyuncs.com/example.jpg

    • ダウンロードするオブジェクトのACLが非公開の場合、このパラメーターをオブジェクトの署名付きURLに設定します。 URLは二重引用符 ("") で囲む必要があります。 例: 「 https://examplebucket.oss-cn-beijing.aliyuncs.com/example.jpg?Expires=1552015472&OSSAccessKeyId=TMP. ****** 5r9f1FV12y8_Qis6LUVmvoSCUSs7aboCCHtydQ0axN32Sn-UvyY3AAAwLAIUarYNLcO87AKMEcE5O3A ****** oCFAQuRdZYyVFyqOW8QkGAN-bamUiQと署名=bIa4llbMbldrl7rwckr % 2FXXvTtxw % 3D」

    -- addr

    String

    課金されません

    ネットワークアドレスを指定します。 ossutilはping操作を使用して、ローカルコンピューターと指定されたアドレス間のネットワーク接続を確認します。

    デフォルト値: www.aliyun.com

    file_name

    String

    課金されません

    オブジェクトがダウンロードされるローカルパス。

    • オブジェクト名のみを指定し、ディレクトリを指定しない場合、オブジェクトはossutilのインストールディレクトリに指定された名前で格納されます。

    • ディレクトリのみを指定し、オブジェクト名を指定しない場合は、指定したディレクトリに元の名前でオブジェクトが格納されます。

    • このパラメーターを指定しない場合、オブジェクトはossutilのインストールディレクトリに元の名前を使用して格納されます。

  • サンプルコマンド

    • オブジェクトURLから特定のオブジェクトをダウンロードしてネットワーク接続を確認し、オブジェクトの名前を変更する

      この例では、ACLがパブリック読み取りであるexample.txtオブジェクトが https://examplebucket.oss-cn-beijing.aliyuncs.com/example.txt からローカルディレクトリにダウンロードされ、名前が /localfile/test.txtに変更されます。 サンプルコマンド:

      ossutil probe --download --url https://examplebucket.oss-cn-beijing.aliyuncs.com/example.txt  /localfile/test.txt

      サンプル出力:

      begin parse parameters and prepare object...[√]
      begin network detection...[√]
      begin download file...[√]
      
      *************************  download result  *************************
      download file:success
      download file size:9(byte)
      download time consuming:278(ms)
      (only the time consumed by probe command)
      
      download file is E:\localfile\test.txt
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521173050.log
                                      
    • URLからオブジェクトをダウンロードし、pingテストのネットワークアドレスを指定してネットワーク接続を確認する

      この例では、ACLがパブリック読み取りであるexample.txtオブジェクトが https://examplebucket.oss-cn-beijing.aliyuncs.com/example.txt からローカルディレクトリにダウンロードされ、pingテストのネットワークアドレスがaliyun.comされます。 サンプルコマンド:

      ossutil probe --download --url https://examplebucket.oss-cn-beijing.aliyuncs.com/example.txt --addr aliyun.com

      サンプル出力:

      begin parse parameters and prepare object...[√]
      begin network detection...[√]
      begin download file...[√]
      
      *************************  download result  *************************
      download file:success
      download file size:9(byte)
      download time consuming:316(ms)
      (only the time consumed by probe command)
      
      download file is E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\example.txt
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521173448.log                               

オブジェクトをダウンロードしてネットワーク接続を確認し、レポートを生成する

ossutilは、バケットからオブジェクトをダウンロードすることで、ローカルクライアントとバケット間のネットワーク接続を確認できます。

  • コマンド構文

    ossutil probe {-- download} {-- bucket bucket_name} [-- object object_name] [-- addr domain_name] [file_name]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    データ型

    必須

    説明

    -- ダウンロード

    /

    課金されます

    オブジェクトをダウンロードしてネットワーク接続チェックを実行するように指定します。

    -バケット

    String

    課金されます

    バケットの名前です。

    -- object

    String

    課金されません

    ダウンロードするオブジェクトの名前。 コマンドでこのパラメーターを指定すると、指定したオブジェクトがローカルディレクトリにダウンロードされます。 コマンドでこのパラメーターを指定しない場合、ossutilは一時オブジェクトを生成し、指定されたバケットにオブジェクトをアップロードしてから、オブジェクトをダウンロードします。 ネットワーク接続チェックが完了すると、ossutilはバケットから一時オブジェクトを削除します。

    -- addr

    String

    課金されません

    ネットワークアドレスを指定します。 ossutilはping操作を使用して、ローカルコンピューターと指定されたアドレス間のネットワーク接続を確認します。

    デフォルト値: www.aliyun.com

    file_name

    String

    課金されません

    オブジェクトがダウンロードされるローカルパス。

    • オブジェクト名のみを指定し、ディレクトリを指定しない場合、オブジェクトはossutilのインストールディレクトリに指定された名前で格納されます。

    • ディレクトリのみを指定し、オブジェクト名を指定しない場合は、指定したディレクトリに元の名前でオブジェクトが格納されます。

    • このパラメーターを指定しない場合、オブジェクトはossutilのインストールディレクトリに元の名前を使用して格納されます。

  • サンプルコマンド

    • オブジェクトをダウンロードしてネットワーク接続を確認し、オブジェクトの名前を変更する

      この例では、/ossfolder/example.txtオブジェクトがexamplebucketバケットからダウンロードされ、名前が /localfolder/text.txtに変更されます。 サンプルコマンド:

      ossutil probe -- download -- bucket examplebucket -- object /ossfolder/example.txt /localfolder/text.txt

      サンプル出力:

      begin parse parameters and prepare object...[√]
      begin network detection...[√]
      begin download file...[√]
      
      *************************  download result  *************************
      download file:success
      download file size:9(byte)
      download time consuming:416(ms)
      (only the time consumed by probe command)
      
      download file is E:\localfolder\text.txt
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521180217.log
    • 一時オブジェクトをダウンロードし、pingテスト用のネットワークのアドレスを指定して、ネットワーク接続ステータスを確認します。

      この例では、一時オブジェクトはexamplebucketバケットからダウンロードされます。 確認するネットワークアドレスがaliyun.comです。 サンプルコマンド:

      ossutil probe --download --bucket examplebucket --addr aliyun.com

      サンプル出力:

      begin parse parameters and prepare object...[√]
      begin network detection...[√]
      begin download file...[√]
      
      *************************  download result  *************************
      download file:success
      download file size:143360(byte)
      download time consuming:865(ms)
      (only the time consumed by probe command)
      
      download file is E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\oss-test-probe-1716286063484973300-rrmrfgtv8w
      
      ************************* report log info*************************
      report log file:E:\00-OSS\01-ossutil\05-v2\ossutil-2.0.0-beta.24041600-windows-amd64\logOssProbe20240521180533.log

特定のアイテムを確認する

probeコマンドを実行して、ローカルシンボリックリンクのステータス、アップロード帯域幅、ダウンロード帯域幅などの特定の項目を確認できます。 ossutilは、特定のチェック項目のチェック結果に基づいて、異常なシンボリックリンクの名前と、推奨される同時アップロードおよびダウンロード数を返します。

  • コマンド構文

    ossutil probe {-- probe-item item_value} {-- bucket-name} [-- object object_name][-- parallel <value>][-- part-size <value>][-- runtime <value>]

    次の表に、上記のコマンドのパラメーターを示します。

    パラメーター

    データ型

    必須

    説明

    -- probe-item

    String

    課金されます

    チェックするアイテム。

    有効な値:

    • cycle-symlink: ossutilは、ローカルパスに異常なシンボリックリンクが存在するかどうかをチェックします。

    • upload-speed: ossutilはアップロード帯域幅をチェックします。

    • download-speed: ossutilはダウンロード帯域幅をチェックします。

    • download-time: ossutilは、オブジェクトのダウンロードに必要な時間をチェックします。

    -バケット

    String

    -- probe-itemの値がcycle-symlinkでない場合ははい

    バケットの名前です。

    -- object

    String

    -- probe-itemdownload-speedに設定されている場合ははい

    オブジェクトのタイプを示します。 オブジェクトが存在する必要があります。 サイズが5 MBを超えるオブジェクトを指定することを推奨します。 例: ossfolder/example.txt

    -- 平行

    int

    課金されません

    1つのオブジェクトに対する操作の同時タスクの数。 デフォルト値は 1 です。

    説明

    このパラメーターは、-- probe-itemdownload-timeに設定されている場合にのみ有効です。

    -- 部分サイズ

    int

    課金されません

    部品サイズ。 単位:バイト デフォルトでは、ossutilはオブジェクトサイズに基づいて部品サイズを決定します。

    有効な値: 1 ~ 9223372036854775807

    説明

    このパラメーターは、-- probe-itemdownload-timeに設定されている場合にのみ有効です。

    -- runtime

    int

    課金されません

    実行時間。 実行時間に達すると、コマンドの実行が中断されます。

    説明

    このパラメーターは、-- probe-itemupload-speedまたはdownload-speedに設定されている場合にのみ有効になります。

  • サンプルコマンド

    • この例では、localfolderディレクトリに異常なシンボリックリンクが存在するかどうかをチェックします。

      サンプルコマンド:

      ossutil probe -- probe-item cycle-symlink D:\localfolder

      サンプル出力:

       success
      
      0.009583(s) elapsed

      出力は、パスに異常なシンボリックリンクが存在しないことを示します。

    • アップロード帯域幅の確認

      この例では、ossutilは一時オブジェクトをexamplebucketという名前のバケットにアップロードし、ハードウェアのパフォーマンスとアップロード帯域幅に基づいて推奨される同時アップロード数を返します。

      サンプルコマンド:

      ossutil probe -- probe-item upload-speed -- bucket examplebucket

      サンプル出力:

      cpu core count:8
      parallel:8,average speed:1956.41(KB/s),current speed:2976.00(KB/s),max speed:2976.00(KB/s)
      parallel:9,average speed:1903.45(KB/s),current speed:1216.00(KB/s),max speed:2720.00(KB/s)
      parallel:10,average speed:1945.38(KB/s),current speed:1184.00(KB/s),max speed:3168.00(KB/s)
      parallel:11,average speed:2102.07(KB/s),current speed:7840.00(KB/s),max speed:7840.00(KB/s)
      parallel:12,average speed:1899.03(KB/s),current speed:1568.00(KB/s),max speed:3168.00(KB/s)
      parallel:13,average speed:1934.34(KB/s),current speed:1760.00(KB/s),max speed:8544.00(KB/s)
      parallel:14,average speed:1765.52(KB/s),current speed:1984.00(KB/s),max speed:2880.00(KB/s)
      parallel:15,average speed:2284.14(KB/s),current speed:2016.00(KB/s),max speed:6688.00(KB/s)
      parallel:16,average speed:2544.55(KB/s),current speed:4032.00(KB/s),max speed:9344.00(KB/s)
      
      suggest parallel is 16, max average speed is 2544.55(KB/s)

      出力は、デバイスに8コアのCPUがあり、最大平均アップロード帯域幅が2544.55 KB/sであり、推奨される同時アップロード数が16であることを示します。

    • ダウンロード帯域幅の確認

      この例では、ossutilはexamplebucketバケットからexample.txtオブジェクトをダウンロードし、ハードウェアのパフォーマンスとダウンロード帯域幅に基づいて同時ダウンロード数を推奨します。

      サンプルコマンド:

      ossutil probe -- probe-item download-speed -- bucket examplebucket -- object example.txt

      サンプル出力:

      cpu core count:8
      parallel:8,average speed:1.41(KB/s),current speed:1.69(KB/s),max speed:1.78(KB/s)
      parallel:9,average speed:1.48(KB/s),current speed:1.02(KB/s),max speed:1.95(KB/s)
      parallel:10,average speed:1.52(KB/s),current speed:1.60(KB/s),max speed:2.11(KB/s)
      parallel:11,average speed:1.41(KB/s),current speed:2.17(KB/s),max speed:2.34(KB/s)
      parallel:12,average speed:1.86(KB/s),current speed:1.71(KB/s),max speed:2.47(KB/s)
      parallel:13,average speed:1.90(KB/s),current speed:0.58(KB/s),max speed:2.65(KB/s)
      parallel:14,average speed:1.17(KB/s),current speed:0.99(KB/s),max speed:2.29(KB/s)
      parallel:15,average speed:1.86(KB/s),current speed:1.42(KB/s),max speed:2.84(KB/s)
      parallel:16,average speed:1.93(KB/s),current speed:0.76(KB/s),max speed:2.56(KB/s)
      
      suggest parallel is 16, max average speed is 1.93(KB/s)

      出力は、デバイスのCPUコアが8コアで、最大平均ダウンロード帯域幅が1.93 KB/sで、推奨される同時ダウンロード数が16であることを示します。

    • ダウンロード帯域幅を確認し、最大実行時間を指定する

      この例では、ossutilがexamplebucketからexample.zipオブジェクトをダウンロードし、ハードウェアのパフォーマンスとダウンロード帯域幅に基づいて推奨される同時ダウンロード数を返すための最大実行時間が指定されています。

      ossutil probe -- probe-item download-speed -- bucket examplebucket -- object example.zip -- runtime 2

      サンプル出力:

      cpu core count:8
      parallel:8,average speed:937.76(KB/s),current speed:952.00(KB/s),max speed:1044.00(KB/s)))
      parallel:9,average speed:935.59(KB/s),current speed:936.00(KB/s),max speed:1016.00(KB/s))
      parallel:10,average speed:924.45(KB/s),current speed:940.00(KB/s),max speed:968.00(KB/s)
      parallel:11,average speed:930.48(KB/s),current speed:828.00(KB/s),max speed:1104.00(KB/s))
      parallel:12,average speed:908.21(KB/s),current speed:920.00(KB/s),max speed:1000.00(KB/s))
      parallel:13,average speed:923.86(KB/s),current speed:992.00(KB/s),max speed:992.00(KB/s)
      parallel:14,average speed:794.14(KB/s),current speed:776.00(KB/s),max speed:948.00(KB/s)
      parallel:15,average speed:835.28(KB/s),current speed:936.00(KB/s),max speed:960.00(KB/s)
      parallel:16,average speed:935.62(KB/s),current speed:932.00(KB/s),max speed:984.00(KB/s)
      
      suggest parallel is 8, max average speed is 937.76(KB/s)
      
      run download-speed  2 seconds with parallel 8
      parallel:8,average speed:809.67(KB/s),current speed:651.08(KB/s),max speed:891.08(KB/s)
      281.731035(s) elapsed
    • ダウンロードによって消費された時間を確認する

      この例では、ossutilはexamplebucketバケットからexample.txtオブジェクトをダウンロードし、ダウンロードタスクによって消費された時間を返します。 サンプルコマンド:

      ossutil probe -- probe-item download-time -- bucket examplebucket -- object example.txt

      サンプル出力:

      download-speed part-size:-1, parallel:1 total bytes:9, cost:0.057 s, avg speed:NaN(kB/s)
      
      0.539351(s) elapsed
    • ダウンロードにかかる時間を確認し、部品サイズを設定する

      この例では、ossutilは、指定されたパーツサイズに基づいてexamplebucketバケットからexample.zipオブジェクトをダウンロードし、ダウンロードタスクによって消費された時間を返します。

      ossutil probe-probe-item download-time-bucket examplebucket-object example.zip-part-size 10000000

      サンプル出力:

      downloading average speed:904.75(KB/s),current speed:1777.62(KB/s),max speed:1868.00(KB/s)
      download-speed part-size:10000000, parallel:1 total bytes:11881599, cost:12.831 s, avg speed:966.92(kB/s)
      
      13.188139(s) elapsed
    • ダウンロードによって消費された時間を確認し、同時実行レベルを設定する

      この例では、ossutilは、指定されたパーツサイズに基づいてexamplebucketバケットからexample.zipオブジェクトをダウンロードし、ダウンロードタスクによって消費された時間を返します。

      ossutil probe --probe-item download-time --bucket examplebucket --object example.zip --parallel 3

      サンプル出力:

      downloading average speed:910.58(KB/s),current speed:1740.00(KB/s),max speed:1876.00(KB/s)
      download-speed part-size:-1, parallel:3 total bytes:11881599, cost:12.728 s, avg speed:966.92(kB/s)
      
      12.984432(s) elapsed