<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>運用・保守 on KnightLiブログ</title>
        <link>https://www.knightli.com/ja/tags/%E9%81%8B%E7%94%A8%E4%BF%9D%E5%AE%88/</link>
        <description>Recent content in 運用・保守 on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sun, 29 Mar 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://www.knightli.com/ja/tags/%E9%81%8B%E7%94%A8%E4%BF%9D%E5%AE%88/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>rsync --delete パラメータの詳細な説明とディレクトリのクリアの実践</title>
        <link>https://www.knightli.com/ja/2026/03/29/rsync-delete-%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3/</link>
        <pubDate>Sun, 29 Mar 2026 11:00:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/ja/2026/03/29/rsync-delete-%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3/</guid>
        <description>&lt;p&gt;&lt;code&gt;rsync --delete&lt;/code&gt; の中心的な機能は、ターゲット ディレクトリ内の「ソース ディレクトリが存在しない」ファイルを削除して、ターゲット側とソース側の一貫性を保つことです。&lt;/p&gt;
&lt;p&gt;一般に、次のシナリオで使用されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;同期中にターゲット側の過去の冗長ファイルをクリーンアップする&lt;/li&gt;
&lt;li&gt;空のディレクトリを使用してターゲット ディレクトリをすばやくクリアします&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;基本的な文法&#34;&gt;基本的な文法
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete 源目录/ 目标目录/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;: アーカイブ モード、権限やタイムスタンプなどの属性を保持します。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--delete&lt;/code&gt;: ターゲット上の余分なファイルを削除します&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重要な注意事項: &lt;code&gt;源目录&lt;/code&gt; の最後に &lt;code&gt;/&lt;/code&gt; があるかどうかは、同期動作に影響します。 &lt;code&gt;/&lt;/code&gt; を使用すると、ディレクトリの内容を同期することを意味し、&lt;code&gt;/&lt;/code&gt; を使用しない場合は、ディレクトリ自体を同期することを意味します。&lt;/p&gt;
&lt;h2 id=&#34;ターゲットディレクトリを空のディレクトリですばやくクリアします&#34;&gt;ターゲットディレクトリを空のディレクトリですばやくクリアします
&lt;/h2&gt;&lt;p&gt;「ディレクトリ構造は保持するが、中身は空にする」ことが目標の場合は、空のディレクトリをソースとして同期できます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1) 创建空目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p /tmp/empty_dir
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2) 同步并删除目标目录中的内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete /tmp/empty_dir/ /path/to/target_dir/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;通常、この方法は、大規模なディレクトリのシナリオで 1 つずつ削除するよりも効率的であり、自動スクリプトの作成も簡単です。&lt;/p&gt;
&lt;h2 id=&#34;よく使用される拡張パラメータ&#34;&gt;よく使用される拡張パラメータ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--delete-before&lt;/code&gt;: 最初に削除してから送信します。これは、シナリオによってはより効率的です。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--progress&lt;/code&gt;: 送信と処理の進行状況を表示&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例 (クリーンな Nginx ログ ディレクトリ):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete --progress /tmp/empty_dir/ /var/log/nginx/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;使用方法の提案&#34;&gt;使用方法の提案
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--dry-run&lt;/code&gt;でプレビューし、削除範囲を確認してから実行します&lt;/li&gt;
&lt;li&gt;本番環境で使用する前に、対象ディレクトリのバックアップを作成することをお勧めします。&lt;/li&gt;
&lt;li&gt;クリティカル パスを実行する場合は、オフピーク時間帯の操作を優先する&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
