Comment puis-je utiliser `scp` pour déployer un site web `.htaccess` fichier?
-
09-06-2019 - |
Question
Je suis actuellement en utilisant la commande suivante pour télécharger le contenu de mon site:
scp -r web/* user@site.com:site.com/
Cela fonctionne très bien sauf que la .fichier htaccess n'est pas envoyé.Apparemment, c'est parce qu'il est caché.
J'ai essayé d'ajouter une deuxième ligne pour envoyer le fichier explicitement:
scp -r web/.htaccess user@site.com:site.com/.htaccess
Cela fonctionne très bien sauf que maintenant je dois entrer mon mot de passe deux fois.
Des idées sur comment faire de cette déployer avec seulement 1 ou 0 les entrées de mon mot de passe?
La solution
Il vous suffit de combiner les deux commandes:
scp -r web/* web/.htaccess user@site.com:site.com/
Si vous voulez 0 les entrées de votre mot de passe vous pouvez définir jusqu' l'authentification par clé publique pour ssh/scp.
Autres conseils
Certaines des informations de base:l' *
générique ne correspond pas à soi-disant "point-files" (c'est à direles fichiers dont le nom commence par un point).
Certains interpréteurs de commandes vous permettent de définir une option, de sorte qu'il va match point-fichiers, cependant, en faisant cela demande beaucoup de douleur:maintenant *
correspond aussi à la .
(le répertoire courant) et ..
(le répertoire parent), ce qui n'est généralement pas ce qui est prévu et qui peuvent être tout à fait surprenant!(rm -rf *
supprimer le répertoire parent est probablement pas la meilleure façon de commencer une journée ...)
Un mot d'avertissement - n'essayez pas de match en pointillés fichiers (comme .htaccess
) avec .*
- ce malencontreusement correspond également à ..
, pour copier tous les fichiers sur le chemin d'accès au répertoire racine.Je l'ai fait une fois (avec rm
, pas moins!) et j'ai eu à reconstruire le serveur parce que j'avais foiré avec /var
.
@jwmittag:
Je viens de faire un test sur Ubuntu et .*
les matchs quand je l'utilise cp
.Voici un exemple:
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
Si .*
n'a pas de match ..
, puis d
ne devrait pas être en b
.