我在Fedora中有两个用户:
用户Wani的.bashrc的内容是:
# .bashrc
echo "Hello"
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
Run Code Online (Sandbox Code Playgroud)
登录到root后,我输入以下命令:
[root@Dell Wani]# touch try.txt
[root@Dell Wani]# service sshd start
[root@Dell Wani]# scp try.txt Wani@localhost:~/
Wani@localhost's password:
Hello
[root@Dell Wani]#
Run Code Online (Sandbox Code Playgroud)
现在我登录Wani,输入:
[Wani@Dell ~]$ cat try.txt
cat: try.txt: No such file or directory
[Wani@Dell ~]$
Run Code Online (Sandbox Code Playgroud)
现在我再次登录root并输入相同的命令-v
:
[root@Dell Wani]# scp -v morph.log Wani@localhost:
Executing: program /usr/bin/ssh host localhost, user Wani, command scp -v …
Run Code Online (Sandbox Code Playgroud) 我需要重新安装服务器我们之一,作为预防措施,我想移动/home
,/etc
,/opt
,和/Services
备份服务器.
但是,我有一个问题:由于大量的符号链接,很多文件被复制多次.
是否可以scp
忽略符号链接(或实际上将链接复制为链接而不是目录或文件)?如果没有,还有另一种方法吗?
在一天中有几次,我可能正在运行测试,我需要查看远程服务器上的日志文件.我已经习惯使用我的终端sftp
进入远程服务器并将所需的日志文件下拉到/tmp
我的本地计算机上.
我正在查看今天的选项man sftp
,试图找出一种基本上在一行中运行以下命令的方法,这样我就不必输入命令,按回车键,输入命令按回车键等.
(我现在应该做什么)
sftp myuser@myserver
--mypassword at prompt
lcd /tmp
get /dir/dir/dir/dir/file
quit
Run Code Online (Sandbox Code Playgroud)
我在查看之前未使用过man sftp
的参考资料时发现了scp
.我觉得这可能是我正在寻找的,但我没有看到一种方法来指定我想要安全复制文件的位置.
有人可以为我提供/dir/file
从远程服务器获取并下载到的方法/tmp/file_plus-my-description
吗?
我希望能够运行类似于常规UNIX副本的sftp或scp命令,如:
scp myuser@myserver /dir/file /tmp/file_plus-my-description
Run Code Online (Sandbox Code Playgroud)
我正在使用Terminal
Mac OS X 10.8中的内置功能.谢谢.
我使用PuTTY登录了远程主机.
将文件从本地计算机传输到我在PuTTY上登录的计算机的命令是什么?
所以,我试图通过ssh和scp简单地将文件夹从本地计算机传输到服务器.sudoing后,我正在使用如下命令:
scp -r C:/desktop/myfolder/deployments/ user@host:/path/to/whereyouwant/thefile
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ssh:C:名称或服务未知
我猜它是我的语法c:/desktop
等任何想法?
顺便说一下,我正在使用putty + Windows 7.
我在Windows机器上运行putty客户端以成功连接到Linux机器.现在,我希望能够将Linux文件中的文件复制/home/ubuntu/myfile
到C:/Users/Anshul/Desktop
本地计算机上的路径下.Windows机器上的用户是anshul
.我在putty上给出以下命令,但它不起作用:
scp /home/ubuntu/myfile ip_address_of_windows_machine:C:/Users/Anshul/Desktop
Run Code Online (Sandbox Code Playgroud)
我认为Windows机器的路径是错误的.请帮忙,因为我已经在大量的论坛上猛烈抨击,但似乎没有一个为Windows服务器提供正确的路径.不建议像其他选项WinScp
假设有一些具有这些结构的文件夹
/bench1/1cpu/p_0/image/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_0/fl_1/
/bench1/1cpu/p_1/image/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/1cpu/p_1/fl_1/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_0/fl_1/
/bench1/2cpu/p_1/image/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
/bench1/2cpu/p_1/fl_1/
....
Run Code Online (Sandbox Code Playgroud)
我想要做的是scp
以下文件夹
/bench1/1cpu/p_0/image/
/bench1/1cpu/p_1/image/
/bench1/2cpu/p_0/image/
/bench1/2cpu/p_1/image/
Run Code Online (Sandbox Code Playgroud)
如您所见,我想以递归方式使用,scp
但不包括名为"fl_X"的所有文件夹.似乎scp没有这样的选择.
UPDATE scp没有这样的功能.相反,我使用以下命令
rsync -av --exclude 'fl_*' user@server:/my/dir
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它只传输文件夹列表!! 就像是ls -R
我想使用scp命令将本地文件复制到远程服务器,但是在远程服务器中输入用户密码后收到错误消息.
~]$ scp gitadmin.pub git@123.150.207.18:
git@123.150.207.18's password:
bash: scp: command not found
lost connection
Run Code Online (Sandbox Code Playgroud)
我使用git用户检查了服务器,似乎可以找到scp命令并且也安装了openssh-clinets.
git@... ~]$ scp
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
git@... ~]$ su root
......
root@... ~]# yum info openssh-clients
Loaded plugins: product-id, subscription-manager
Updating Red Hat repositories.
Installed Packages
Name : openssh-clients
Arch : x86_64
Version : 5.3p1
Release : 52.el6
Size : 1.0 M
Repo : installed
From repo : …
Run Code Online (Sandbox Code Playgroud) 我正在使用Ansible将目录(900个文件,136MBytes)从一个主机复制到另一个主机:
---
- name: copy a directory
copy: src={{some_directory}} dest={{remote_directory}}
Run Code Online (Sandbox Code Playgroud)
这项操作耗时17分钟,而简单scp -r <src> <dest>
只需7秒钟.
我已经尝试了加速模式,根据ansible 文档 "可以比启用ControlPersist的SSH快2-6倍,比paramiko快10倍.",但无济于事.
我不确定这是否可行.基本上,我正在编写一个脚本,允许我将文件scp到我的主机.到目前为止这是它.参数1是文件,参数2是我希望它放在远程服务器上的文件夹:
function upload {
scp $1 myusername@ssh.myhost.net:$2
}
Run Code Online (Sandbox Code Playgroud)
您可能/可能不知道,如果我在调用函数时指定的目录不存在,则传输失败.有没有办法检查函数中是否存在该目录,如果没有,则创建它.
我宁愿不必每次都使用ssh并创建目录,但如果我别无选择,那么我别无选择.