前言
在Linux中,有时候需要写脚本完成一些文件上传下载的操作,从而节省一些手动拷贝文件的操作,使用scp命令通过ssh协议,可以实现文件或文件夹的上传和下载,使用sshpass命令,可是的scp命令带上密码,避免手动输入,在一些需要大量自动化的场合非常有用。
scp命令
scp命令主要用于Linux中不同主机间复制文件和目录。
scp是Linux系统下基于ssh登录进行安全的远程文件拷贝命令。
scp是加密的。
命令格式
scp [参数] [原路径] [目标路径]
命令参数:
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。
-P port 注意是大写的P, port是指定数据传输用到的端口号
上传本地文件到服务器
scp /path/filename username@servername:/path/
例如:scp /opt/data/file.txt root@192.168.1.3:/opt/ 把本机/opt/data/目录下的file.txt文件上传到192.168.1.3服务器的/opt/目录下。
下载服务器文件到本地
scp username@servername:/opt/file.txt /opt/data/ #(本地)
例如:scp root@192.168.1.3:/opt/file.txt /opt/data把192.168.1.3上的/opt/file.txt文件下载到/opt/data(本地)
上传本地目录到服务器
scp -r /opt/local_test_dir username@servername:/opt/test
例如:scp -r /opt/local_test_dir root@192.168.1.3:/opt/test 把本地的/opt/local_test_dir目录上传到服务器192.168.1.3的/opt/test 目录
下载服务器目录到本地
scp -r username@servername:/opt/test/(服务器目录) /opt/local_test_dir #(本地目录)
例如:scp -r username@192.168.1.3:/opt/test/ /opt/local_test_dir 把服务器192.168.1.3 /opt/test/目录下载到/opt/local_test_dir目录下
命令中如何带密码
使用sshpass命令可以给scp命令带上密码。
命令格式:
sshpass -p 密码 scp -P 端口 源文件 目标文件
评论区