Quel est le meilleur moyen d'automatiser le FTP sécurisé en PowerShell?
Je voudrais automatiser le téléchargement FTP d'une base de données de sauvegarde de fichiers à l'aide de PowerShell. Le nom de fichier inclut la date, donc je ne peux pas il suffit d'exécuter le même script FTP tous les jours. Est-il un moyen propre pour ce faire, construit en PowerShell ou à l'aide de l' .Net framework?
Mise à JOUR j'ai oublié de mentionner que c'est un travers un FTP sécurisé session.
- Je sais que c'est vieux, mais je n'ai vu personne parler de la
Posh-SSH
module. Je l'ai utilisé avec succès. github.com/darkoperator/Posh-SSH
Vous devez vous connecter pour publier un commentaire.
Après quelques essais, je suis venu avec ce moyen d'automatiser un FTP sécurisé de téléchargement en PowerShell. Ce script s'exécute hors de la public de test serveur FTP administré par Chilkat Software. De sorte que vous pouvez copier et coller ce code et il va fonctionner sans modification.
J'ai trouvé beaucoup d'informations utiles à ces liens
Si vous souhaitez utiliser une connexion SSL, vous devez ajouter la ligne
pour le script avant de vous appeler GetResponse(). Parfois, vous devez faire affaire avec un serveur de certificat de sécurité qui est expiré (comme je n'ai malheureusement). Il y a une page à l' PowerShell Référentiel De Code qui a un extrait de code pour le faire. Les 28 premières lignes sont les plus pertinentes pour les fins de téléchargement d'un fichier.
Prises de ici
Fonctionne pour moi
Autant que PowerShell, le /n Logiciel NetCmdlets forfait comprend FTP applets de commande (incluant le support à la fois sécurisé FTP types) que vous pouvez utiliser assez facilement pour ce.
Les CONFITURES du Planificateur de tâches offre quelques applets de commande qui permettrait de rendre cette tâche simple. Il a une variété de FTP applets de commande pour les sessions sécurisées, ainsi que la date applets de commande pour la conversion naturel des dates dans .Net date d'objets tels que le "Dernier jour du mois":
CONFITURES Planificateur de tâches Applets de commande
Ce n'est pas aussi simple que je voudrais qu'il était. Il y a trois options, que je sache.
1) .Net - Vous pouvez utiliser le .Net framework pour ce faire, dans la PS, mais il implique une socket raw manipulation que je ne veux pas faire dans un script. Si je devais aller dans cette voie, alors je l'enveloppent de toutes les ftp indésirable dans une DLL en C#, puis utiliser cette DLL à partir de powershell.
2) la Manipulation d'un fichier - Si vous connaissez le modèle de nom de fichier que vous devez obtenir chaque jour ensuite, vous pouvez simplement ouvrir votre script ftp avec le PS et de changer le nom du fichier dans le script. Puis exécutez le script.
3) Tuyau de texte FTP - La dernière option est d'utiliser powershell pour tuyau d'info dans et hors de votre session FTP. Voir ici.
Quelque chose comme cela pourrait fonctionner:
Vérifier: Powershell: compresser les sauvegardes et de transfert FTP
J'ai utilisé avec succès l'Indy Projet .NET-library pour faire du FTP. Et...oh, regarde comme l'a accueilli .NET de construire n'est plus disponible.
$realdate = (Get-Date).ToString("aaaammjj")
$path = "D:\samplefolderstructure\filename" + $realdate + ".msi"
pts -f $path -s:D:\FTP.txt
http://ftp.txt est la façon dont nous gardons toutes nos infos de connexion au serveur ftp. le pts est le client nous utilisons évidemment, donc peut-être modifier un peu les choses. Mais, cela devrait vous aider à ge l'idée.