
私は GitLab で CI ランナーに取り組んでいます。これは、変更されたファイルを FTP 経由で開発環境に転送することになっています。
lftp
使いやすく、複雑すぎないため、これを行うには良い解決策であるように思われました。
私はこれをファイル転送に使用しています:
lftp -c "set ftp:ssl-allow no; open -u $USERNAME_DEV,$PASSWORD_DEV $HOST_DEV; mirror -Rvpn -O $PATH_DEV --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
問題となるのは-Rvpn
パラメータ セット、具体的にはです-n
。これは、ファイルの変更時間をチェックすることでおそらく機能する、新しいファイルのみをミラーリングすることになっています。
現在、リポジトリは正しい時刻を使用していますが、サーバーは 1 時間進んでいます (GMT +1 ではなく +2)。そのため、新しいファイルをチェックするときに false が発生します。
を削除することもできます-n
が、変更された (したがって新しい) ファイルだけでなく、リポジトリ全体が複製されます。
lftp
のタイムオフセットを定義して、ファイルの変更日に+1時間追加する方法はありますか?確認しましたマニュアルしかし、そのようなものは見つかりませんでした。
答え1
リンクしたマニュアルを見ると、lftp
リモート サイトのタイムゾーンを定義できるオプションがあります。設定してみて、lftp
正しく補正されるかどうか確認してみる価値はあるかもしれません。
ftp:タイムゾーン (文字列)
LIST コマンドによって返されるリストの時間にこのタイムゾーンを想定します。この設定は、GMT オフセット [+|-]HH[:MM[:SS]] または任意の有効な TZ 値 (例: Europe/Moscow または MSK-3MSD、M3.5.0、M10.5.0/3) にすることができます。デフォルトは GMT です。環境変数 TZ で指定されたローカル タイムゾーンを想定したい場合は、空の値に設定します。
さらに、時間を無視するスイッチ ( ) があり、--ignore-time
ファイル サイズのみに依存させることが可能になり、また、いくつかのスイッチ (--newer-than
および--older-than
) によって「重要な」時間を定義することができるため、すべてのファイルが転送されないような設定ができる可能性があります。