「scp」を使用して Web サイトの「.htaccess」ファイルをデプロイするにはどうすればよいですか?
-
09-06-2019 - |
質問
現在、次のコマンドを使用してサイトのコンテンツをアップロードしています。
scp -r web/* user@site.com:site.com/
これは、.htaccess ファイルが送信されないことを除けば、うまく機能します。おそらく隠蔽されているからだと思われます。
ファイルを明示的に送信するために 2 行目を追加してみました。
scp -r web/.htaccess user@site.com:site.com/.htaccess
これは、パスワードを 2 回入力する必要があることを除けば、うまく機能します。
パスワードを 1 つまたは 0 入力するだけでこのデプロイを行う方法について何か考えはありますか?
解決
2 つのコマンドを組み合わせるだけです。
scp -r web/* web/.htaccess user@site.com:site.com/
パスワードの入力を 0 にしたい場合は、次のように設定できます。 公開鍵認証 SSH/SCPの場合。
他のヒント
背景情報:の *
ワイルドカードは、いわゆる「ドットファイル」とは一致しません(つまり、名前がドットで始まるファイル)。
一部のシェルではオプションを設定できるため、 意思 ただし、ドット ファイルを一致させるには、多大な労力が必要です。今 *
も合います .
(現在のディレクトリ) と ..
(親ディレクトリ)、これは通常意図したものではなく、非常に驚くべきことです。(rm -rf *
親ディレクトリを削除するのは、おそらく 1 日の始まりに最適な方法ではありません...)
注意の言葉 - ドット付きファイル (次のように) を一致させようとしないでください。 .htaccess
) と .*
- これも不都合なことに一致します ..
, となり、パス上のすべてのファイルがルート ディレクトリにコピーされることになります。これを一度やりました( rm
, 、それ以上です!) そして、私はサーバーを台無しにしなければならなかったので、サーバーを再構築する必要がありました。 /var
.
@jwmittag:
Ubuntuでテストを行ったところ、 .*
使用すると一致します cp
. 。以下に例を示します。
root@krash:/# mkdir a
root@krash:/# mkdir b
root@krash:/# mkdir a/c
root@krash:/# touch a/d
root@krash:/# touch a/c/e
root@krash:/# cp -r a/c/.* b
cp: will not create hard link `b/c' to directory `b/.'
root@krash:/# ls b
d e
もし .*
一致しませんでした ..
, 、 それから d
入ってはいけない b
.