[英]Netmiko FileTransfer with python
我正在編寫一個腳本,使用 netmiko FileTransfer 將一些文件傳輸到 Cisco IOS 設備。 下面是我找到的用於完成此操作的代碼。 但是我似乎無法找到 source_file 應該在哪里或如何指定文件所在主機上的位置。 如何指定從何處復制該文件?
dest_file_system = 'disk0:/'
source_file = 'test1.txt' # where should this file be live?
dest_file = 'test1.txt'
with FileTransfer(ssh_conn, source_file=source_file, dest_file=dest_file,
file_system=dest_file_system) as scp_transfer:
if not scp_transfer.check_file_exists():
if not scp_transfer.verify_space_available():
raise ValueError("Insufficient space available on remote device")
print("\nTransferring file\n")
scp_transfer.transfer_file()
從腳本角度來看,如果您只是想按名稱調用源文件,則該源文件應與腳本本身位於同一目錄中。 如果要將文件移動到新目錄,則腳本中的搜索路徑相對於腳本運行的目錄。 示例1-file_name.txt與腳本位於同一目錄中在腳本中,只需調用文件source =“ file_name.txt”。 示例2在保存腳本的當前目錄中創建test_folder並將其命名為test_folder將file_name.txt移到test_folder中。 在腳本中,您的源變量不需要看起來像此源=“ test_folder / file_name.txt”
希望到目前為止您已經找到了解決方案。 如果沒有,那么您也可以嘗試使用 netmiko 文件傳輸功能。 這將是一種更安全、更有效的方法。
嘗試下面的示例腳本。
from getpass import getpass
from netmiko import ConnectHandler, file_transfer
password = getpass()
cisco = {
"device_type": "cisco_ios",
"host": "cisco1.twb-tech.com",
"username": "pyclass",
"password": password,
}
source_file = "test1.txt"
dest_file = "test1.txt"
direction = "put"
file_system = "flash:"
ssh_conn = ConnectHandler(**cisco)
transfer_dict = file_transfer(
ssh_conn,
source_file=source_file,
dest_file=dest_file,
file_system=file_system,
direction=direction,
overwrite_file=True,
)
print(transfer_dict)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.