powershell - تحميل الملف إلى سفتب باستخدام بويرشيل




upload automation (2)

لقد طلب منا إعداد تحميل تلقائي من أحد الخوادم إلى موقع سفتب. سيكون هناك ملف يتم تصديره من قاعدة بيانات إلى مدون كل صباح الاثنين ويريدون تحميل الملف إلى سفتب يوم الثلاثاء. طريقة المصادقة الحالية التي نستخدمها هو اسم المستخدم وكلمة المرور (أعتقد أنه كان هناك خيار أن يكون ملف المفتاح وكذلك تم اختيار ولكن اسم المستخدم / كلمة المرور الخيار).

الطريقة التي أتصور هذا هو أن يكون البرنامج النصي يجلس على الخادم الذي سيتم تشغيله من قبل ويندوز جدولة المهام لتشغيل في وقت محدد (الثلاثاء) من شأنها أن انتزاع الملف في السؤال تحميله إلى سفتب ومن ثم نقله إلى موقع مختلف لأغراض النسخ الاحتياطي.

فمثلا:

  • الدليل المحلي: C:\FileDump

  • سفتب الدليل: /Outbox/

  • دليل النسخ الاحتياطي: C:\Backup

حاولت أشياء قليلة في هذه النقطة وينسكب يجري واحد منهم وكذلك سفتب بويرشيل الإضافية في ولكن لا شيء عملت بالنسبة لي حتى الآن.

سيتم تشغيل هذا على ويندوز سيرفر 2012R2.
عندما أقوم بتشغيل Get-Host إصدار المضيف وحدة التحكم بلدي هو 4.0.

شكر.


باستخدام pscp.exe بوتي (الذي لدي في $env:path الدليل):

pscp -sftp -pw passwd c:\filedump\* [email protected]:/Outbox/
mv c:\filedump\* c:\backup\*

ليس هناك حاليا طريقة بويرشيل المضمنة للقيام جزء سفتب. سيكون لديك لاستخدام شيء مثل psftp.exe أو وحدة بويرشيل مثل بوش-سش.

في ما يلي مثال باستخدام بوش-سش :

# Set the credentials
$Password = ConvertTo-SecureString 'Password1' -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ('root', $Password)

# Set local file path, SFTP path, and the backup location path which I assume is an SMB path
$FilePath = "C:\FileDump\test.txt"
$SftpPath = '/Outbox'
$SmbPath = '\\filer01\Backup'

# Set the IP of the SFTP server
$SftpIp = '10.209.26.105'

# Load the Posh-SSH module
Import-Module C:\Temp\Posh-SSH

# Establish the SFTP connection
New-SFTPSession -ComputerName $SftpIp -Credential $Credential

# Upload the file to the SFTP path
Set-SFTPFile -SessionId 0 -LocalFile $FilePath -RemotePath $SftpPath

# Disconnect SFTP session
(Get-SFTPSession -SessionId 0).Disconnect()

# Copy the file to the SMB location
Copy-Item -Path $FilePath -Destination $SmbPath

بعض الملاحظات الإضافية:

  • سيكون لديك لتحميل وحدة بوش-سش التي يمكنك تثبيتها إلى دليل وحدة المستخدم الخاص بك (على سبيل المثال C: \ وسرس \ jon_dechiro \ دوكومينتس \ ويندسبويرشيل \ وحدات) وتحميل فقط باستخدام اسم أو وضعها في أي مكان وتحميله مثل أنا في التعليمات البرمجية أعلاه.
  • إذا كان وجود أوراق الاعتماد في البرنامج النصي غير مقبول، فسيتعين عليك استخدام ملف اعتماد. إذا كنت بحاجة إلى مساعدة مع ذلك يمكنني تحديث مع بعض التفاصيل أو نقطة لك بعض الروابط.
  • تغيير المسارات، إب، الخ حسب الحاجة.

هذا ينبغي أن تعطيك نقطة انطلاق لائق.





sftp