Upgrade to Pro — share decks privately, control downloads, hide ads and more …

robocopy の怖い話/scary-story-about-robocopy

Avatar for emi emi
July 27, 2025

robocopy の怖い話/scary-story-about-robocopy

https://toranomon-tech-hub.connpass.com/event/356096/
Toranomon Tech Hub 第四回 真夏のIT怪談ナイト 〜ITにまつわる怖い話〜

Avatar for emi

emi

July 27, 2025
Tweet

More Decks by emi

Other Decks in Technology

Transcript

  1. 自己紹介 2 • 最近やっていた・いること ◦ Terraform を用いた AWS リソース構築支援 ◦

    AWS Control Tower を用いたマルチアカウント環境での AWS Security Hub、Amazon GuardDuty 展開 ◦ AWS リソース負荷軽減、構成検討 ◦ コスト最適化アセスメント ◦ Amazon QuickSight や Amazon Athena を利用した データ分析・可視化 • 名前(ニックネーム) ◦ 木谷 映見(emi) • 部署 ◦ クラスメソッド株式会社 ◦ クラウド事業本部コンサルティング部 • 趣味 ◦ コーヒー、ドーナツ、サウナ、 ホットヨガ、漫画、音楽など AWS Certified Cloud Practitioner バ ッ ジ AWS Certified AI Practitioner バ ッ ジ AWS Certified Solutions Architect - Professional バ ッ ジ AWS Certified DevOps Engineer - Professional バ ッ ジ AWS Certified Advanced Networking - Specialty バ ッ ジ AWS Certified Machine Learning - Specialty AWS Certified Security - Specialty バ ッ ジ AWS Certified SysOps Administrator - Associate バ ッ ジ AWS Certified Developer - Associate バ ッ ジ AWS Certified Solutions Architect - Associate バ ッ ジ AWS Certified Data Engineer - Associate バ ッ ジ AWS Certified Machine Learning Engineer - Associate バ ッ ジ AWS Certified Cloud Practitioner バ ッ ジ AWS Certified AI Practitioner バ ッ ジ AWS Certified Solutions Architect - Professional バ ッ ジ AWS Certified DevOps Engineer - Professional バ ッ ジ AWS Certified Advanced Networking - Specialty バ ッ ジ AWS Certified Machine Learning - Specialty AWS Certified Security - Specialty バ ッ ジ AWS Certified SysOps Administrator - Associate バ ッ ジ AWS Certified Developer - Associate バ ッ ジ AWS Certified Solutions Architect - Associate バ ッ ジ AWS Certified Data Engineer - Associate バ ッ ジ AWS Certified Machine Learning Engineer - Associate バ ッ ジ 最近はカフェインを控えています
  2. 目次 3 ⚫ robocopy とは ⚫ robocopy で絶対に間違えてはいけない部分 ⚫ robocopy

    の怖い話 ⚫ AI は人間のミスを減らすか? ⚫ おわりに
  3. robocopy とは 4 ⚫ robocopy とは ⚫ robocopy で絶対に間違えてはいけない部分 ⚫

    robocopy の怖い話 ⚫ AI は人間のミスを減らすか? ⚫ おわりに
  4. 6 ⚫ robocopy とは ⚫ Microsoft Windows に標準搭載されているファイル・フォルダのコピーツール ⚫ Robocopy

    | Microsoft Learn ⚫ https://learn.microsoft.com/ja-jp/windows-server/administration/windows- commands/robocopy ⚫ 主な用途 ⚫ バックアップ作業 ⚫ サーバー間のデータ移行 ⚫ 定期的なファイル同期 ⚫ 大容量データの安全な転送 robocopy とは
  5. 7 ⚫ robocopy コマンドの使い方 ⚫ X ⚫ X ⚫ x

    ⚫ 基本構文 ⚫ D:¥source: コピー元フォルダ ⚫ E:¥destination: コピー先フォルダ ⚫ /mir オプション ⚫ ミラーリング(完全同期)、コピー先をコピー元と完全に一致させる ⚫ コピー元にないファイル・フォルダはコピー先から削除される robocopy とは robocopy D:¥source E:¥destination /mir /copyall /r:3 /w:10 /log+:migration.log /tee
  6. 8 ⚫ robocopy コマンドの使い方 ⚫ X ⚫ X ⚫ x

    ⚫ /copyall オプション ⚫ すべての情報をコピー (データ、属性、タイムスタンプ、セキュリティ、所有者、監査情報) ⚫ ファイルサーバー移行時に最適 ⚫ /r:3 オプション ⚫ 失敗時のリトライ回数(3回まで再試行) ⚫ ファイルアクセス失敗時、ネットワークエラー時などの対策 robocopy とは robocopy D:¥source E:¥destination /mir /copyall /r:3 /w:10 /log+:migration.log /tee
  7. 9 ⚫ robocopy コマンドの使い方 ⚫ X ⚫ X ⚫ x

    ⚫ /w:10 オプション ⚫ リトライ間隔(10 秒間待機してから再試行) ⚫ ネットワーク負荷軽減、一時的な問題の回復待ち ⚫ /log+:migration.log オプション ⚫ 既存のログファイルへログを追加出力(migration.log に結果を追記) ⚫ コピー状況、エラー、統計情報 ⚫ 移行作業の証跡として必須 robocopy とは robocopy D:¥source E:¥destination /mir /copyall /r:3 /w:10 /log+:migration.log /tee
  8. 10 ⚫ robocopy コマンドの使い方 ⚫ X ⚫ X ⚫ x

    ⚫ /tee オプション ⚫ 画面とログファイル両方に出力(リアルタイムで進行状況を確認可能) robocopy とは robocopy D:¥source E:¥destination /mir /copyall /r:3 /w:10 /log+:migration.log /tee
  9. 11 ⚫ 例えば共有フォルダを移行したい場合 robocopy とは Client server01 server02 ネットワークドライブとして H、I、Jドライブが見えている状態にしたい

    Share_C(¥¥server01¥share_c)(J:) Share_B(¥¥server01¥share_b)(I:) Share_A(¥¥server01¥share_a)(H:) Share_C(¥¥server02¥share_c)(J:) Share_B(¥¥server02¥share_b)(I:) Share_A(¥¥server02¥share_a)(H:)
  10. 12 ⚫ 例えば共有フォルダを移行したい場合 robocopy とは Client server01 server02 ネットワークドライブとして H、I、Jドライブが見えている状態にしたい

    Share_C(¥¥server01¥share_c)(J:) Share_B(¥¥server01¥share_b)(I:) Share_A(¥¥server01¥share_a)(H:) Share_C(¥¥server02¥share_c)(J:) Share_B(¥¥server02¥share_b)(I:) Share_A(¥¥server02¥share_a)(H:) robocopy ¥¥server01¥Share_A ¥¥server02¥Share_A /mir /copyall /r:3 /w:10 /log:migration.log /tee まず UNC パスで robocopy
  11. 13 ⚫ 例えば共有フォルダを移行したい場合 robocopy とは Client server01 server02 server02 側の

    UNC パスで ネットワークドライブを 再割り当て Share_C(¥¥server01¥share_c)(J:) Share_B(¥¥server01¥share_b)(I:) Share_A(¥¥server01¥share_a)(H:) Share_C(¥¥server02¥share_c)(J:) Share_B(¥¥server02¥share_b)(I:) Share_A(¥¥server02¥share_a)(H:) robocopy ¥¥server01¥Share_A ¥¥server02¥Share_A /mir /copyall /r:3 /w:10 /log:migration.log /tee
  12. 14 ⚫ 例えば共有フォルダを移行したい場合 robocopy とは Client server01 server02 Server02 側の

    UNC パスで ネットワークドライブを 再割り当て Share_C(¥¥server01¥share_c)(J:) Share_B(¥¥server01¥share_b)(I:) Share_A(¥¥server01¥share_a)(H:) Share_C(¥¥server02¥share_c)(J:) Share_B(¥¥server02¥share_b)(I:) Share_A(¥¥server02¥share_a)(H:) robocopy ¥¥server01¥Share_A ¥¥server02¥Share_A /mir /copyall /r:3 /w:10 /log:migration.log /tee 実際には一気に robocopy を流すのは危険 • まず共有フォルダのリストを作成する • 共有フォルダ名が正しいか確認する • 共有フォルダを 1 つずつ robocopy する • 成功したか失敗したか判定する • 成功なら次のフォルダの robocopy に進む : : みたいなスクリプトを組みます
  13. robocopy とは 15 ⚫ (補足)UNC パス ⚫ ネットワーク内のサーバーやプリンターなどのリソースを識別するための規格 ⚫ Unix

    コミュニティが発祥 ⚫ Windows では、コンピューター名の前に二重スラッシュかバックスラッシュを付ける ⚫ コンピューターのパスは単一のスラッシュ(/)かバックスラッシュ(¥)で区切る • UNCパスとは何か&使い方:https://jp.minitool.com/lib/unc-path.html server01 server02 Share_C(¥¥server01¥share_c)(J:) Share_B(¥¥server01¥share_b)(I:) Share_A(¥¥server01¥share_a)(H:) Share_C(¥¥server02¥share_c)(J:) Share_B(¥¥server02¥share_b)(I:) Share_A(¥¥server02¥share_a)(H:)
  14. 19 ⚫ 【コピー元フォルダ】と【コピー先フォルダ】を間違えると 大変なことになります ⚫ X ⚫ X ⚫ /mir

    オプションにより、コピー元とコピー先は全く同じ状態になる ⚫ コピー元とコピー先が逆だった場合、何もないコピー先の状態がコピー元に反映される ⚫ →コピー元のファイルが全部消える ⚫ インシデントを防ぐために必ず実施すること ⚫ 全く同じ仮想環境を作成し、まったく同じコマンドでコピーが成功するか確認する ⚫ 複数人でダブルチェックする robocopy で絶対に間違えてはいけない部分 robocopy D:¥source E:¥destination /mir /copyall /r:3 /w:10 /log+:migration.log /tee コピー元とコピー先が正しい robocopy コピー元とコピー先を間違えた robocopy File_A File_B File_C : コピー元 File_A File_B File_C : コピー先 コピー先 File_A File_B File_C : コピー元
  15. robocopy の怖い話 21 ⚫ robocopy とは ⚫ robocopy で絶対に間違えてはいけない部分 ⚫

    robocopy の怖い話 ⚫ AI は人間のミスを減らすか? ⚫ おわりに
  16. 25 robocopy の怖い話 robocopy D:¥test¥source E:¥test¥destination /mir /copyall /r:3 /w:10

    /log+:migration.log /tee D:¥ xxx test source1 source2 xxx xxx source1 source2 xxx server01 E:¥ xxx test source1 source2 xxx server02 robocopy テスト用の データ 本物の業務データ
  17. 29 robocopy の怖い話 robocopy D:¥source E:¥test¥destination /mir /copyall /r:3 /w:10

    /log+:migration.log /tee D:¥ xxx test source1 source2 xxx xxx source1 source2 xxx server01 E:¥ xxx test source1 source2 xxx server02 本物の業務データが テストフォルダ配下に コピーされていた
  18. 30 ⚫ その後 ⚫ お客様に謝罪 ⚫ 間違えていないパスで再度 robocopy スクリプトを実施 ⚫

    間違えてコピーされたテストファイル、テストフォルダを削除 (100万回ダブルチェックの上実施) ⚫ 休日に最終差分コピー ⚫ ファイルサーバー切り替え robocopy の怖い話
  19. AI は人間のミスを減らすか? 32 ⚫ robocopy とは ⚫ robocopy で絶対に間違えてはいけない部分 ⚫

    robocopy の怖い話 ⚫ AI は人間のミスを減らすか? ⚫ おわりに
  20. 34 ⚫ AI は人間のミスを減らすか?※私個人の見解です ⚫ AI は人間の作業を手助けしてくれる。ミスを減らす手助けもしてくれる ⚫ 生成 AI

    は人間に似ている(優秀だが、ミスも起こす) ⚫ AI は責任を取れない ⚫ 作業判断は人間が行わなければならない世界がもう少し続くのではないか? ⚫ いずれ AI が人間よりはるかに賢くなった時、 「人間が理解できなくてもうまくいくからこれでいい」という パフォーマンス重視の世界がくる可能性がある ⚫ 【もう必要ない?】AIで都知事選を席巻した安野貴博(たかひろ)さんと "AI時代の言語化力"を徹底議論した - YouTube ⚫ https://youtu.be/FokCbQre-T8?feature=shared&t=1537 AI は人間のミスを減らすか?
  21. おわりに 35 ⚫ robocopy とは ⚫ robocopy で絶対に間違えてはいけない部分 ⚫ robocopy

    の怖い話 ⚫ AI は人間のミスを減らすか? ⚫ おわりに
  22. 37 ⚫ 当初「robocopy の怖い話と IaC の怖い話」の 2 本立てでお送りしようと 思っていたのですが、納まりきらなかったので IaC

    の怖い話はこちらを ご覧ください。 おわりに CloudFormationで管理されたシステムの変更でエラー連発した話 - Speaker Deck https://speakerdeck.com/emiki/cloudformationdeguan-li-saretasisutemufalsebian-geng-deeralian-fa-sitahua
  23. 参考 38 ⚫ Robocopy | Microsoft Learn https://learn.microsoft.com/ja-jp/windows-server/administration/windows- commands/robocopy ⚫

    [登壇レポート] Storage-JAWS #7 AWS Pi Day 2025直前スペシャル! 「Windows Server に FSx for NetApp ONTAP を iSCSI 接続してみた」という内容で登壇してきました #storagejaws #jawsug | DevelopersIO https://dev.classmethod.jp/articles/storage-jaws-7-aws-pi-day-2025-windows-server-fsx-for-netapp-ontap-iscsi/