Linux指令,如何将别的服务器下的文件目录同步到当前虚拟机目录
时间: 2024-10-14 17:02:38 浏览: 39
在Linux系统中,可以使用rsync命令来实现在本地虚拟机目录与远程服务器之间的文件同步。Rsync是一种强大的、基于文件内容校验的同步工具,它只传输发生改变的部分,因此效率较高。
以下是基本的同步步骤:
1. **安装rsync**:如果您的系统尚未安装rsync,可以使用包管理器安装,如Ubuntu上使用`sudo apt-get install rsync`。
2. **登录远程服务器**: 使用SSH(Secure Shell)连接到远程服务器,例如:
```
ssh username@remote_server_ip
```
3. **指定同步命令**:在终端中运行rsync命令,语法通常是:
```bash
rsync -avz --progress user@remote_server_ip:/path/to/source /local/path/to/destination
```
其中:
- `-a`表示archive模式,保持源文件结构和权限;
- `-v`启用详细模式,显示进度;
- `-z`压缩数据传输,减少网络带宽消耗;
- `--progress`显示传输进度。
4. **授权与密码**:如果您需要输入密码,可以在命令行添加`-p`选项,或者通过SSH密钥对进行无密码认证。
5. **验证同步结果**:同步完成后,您可以检查目标目录,确认文件是否已成功复制,并且权限、所有权等属性是否保留一致。
相关问题
linux虚拟机好玩代码
### 有趣的代码示例或项目在 Linux 虚拟机上运行
#### 使用 Python 实现简单的 Web 服务器
创建一个基于 Flask 的简单 Web 应用程序可以是一个很好的起点。Flask 是一种轻量级的框架,非常适合初学者学习如何构建 Web 应用。
```python
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template_string('<h1>Hello from your Linux VM!</h1>')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
```
这段代码启动了一个监听所有网络接口上的端口 8080 的小型 HTTP 服务[^1]。
#### 构建并部署 Docker 容器化应用
Docker 提供了一种方便的方法来打包应用程序及其依赖项到容器中,在任何环境中都能一致地工作。下面是如何编写一个 `Dockerfile` 来容器化上述 Flask 应用:
```dockerfile
FROM python:3.9-slim-buster
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -q -r requirements.txt
EXPOSE 8080
CMD ["python", "app.py"]
```
此文件定义了用于构建镜像所需的所有指令,并指定了当容器启动时要执行的操作[^2]。
#### 利用 Bash 编写自动化脚本
Bash scripting 可以帮助简化日常任务管理,比如备份重要数据、监控系统性能等。这里有一个例子展示了怎样定期复制特定目录的内容至另一位置作为备份机制的一部分:
```bash
#!/bin/bash
SOURCE="/path/to/source"
DESTINATION="/path/to/destination"
rsync -avz $SOURCE $DESTINATION
echo "Backup completed at $(date)"
```
该 Shell 命令会同步源路径下的所有文件和子目录到目标位置,并记录下完成时间戳[^3]。
rocky虚拟机设置
### 设置和配置 Rocky Linux 虚拟机
#### 配置网络连接
为了使虚拟机能够正常访问外部网络,在安装完成后需对网络接口进行适当配置。对于设置固定 IP 地址,可以通过编辑 `/etc/sysconfig/network-scripts/ifcfg-<interface>` 文件来实现[^2]。
```bash
# 使用 vi 或 nano 编辑器打开对应的网络脚本文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
```
在此文件中指定静态 IP 参数:
```plaintext
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
```
保存并退出后重启网络服务以应用更改:
```bash
systemctl restart network
```
另一种方法是在 `NetworkManager` 下通过命令行工具 nmcli 进行快速设定[^3]:
```bash
nmcli con mod "System ens33" ipv4.addresses '192.168.0.100/24' \
ipv4.gateway '192.168.0.1' ipv4.dns '8.8.8.8,8.8.4.4' \
ipv4.method manual connection.autoconnect yes
```
#### 安全性和性能优化
考虑到安全因素,默认情况下 SELinux 是开启状态。如果不需要此功能,则可以将其完全禁用以简化调试过程。
修改 `/etc/selinux/config` 中的策略选项为 disabled 并重新启动系统生效:
```bash
SELINUX=disabled
```
另外,为了避免因主机资源不足而导致客户操作系统崩溃的情况发生,建议启用内存过度提交特性;这同样可以在 VMware 的 .vmx 文件里添加如下参数完成操作:
```properties
mem.allowSwap=TRUE
mainMem.useNamedFile="FALSE"
sched.mem.pshare.enable="FALSE"
```
#### 时间同步和服务调整
确保服务器处于正确的时间区域,并定期与互联网上的标准时间服务器保持一致非常重要。为此可执行以下指令更新当前会话及时区数据。
查看可用时区列表并选择合适的一个应用于本地环境:
```bash
timedatectl list-timezones | grep Asia/Shanghai
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
接着安装 chrony 作为 NTP 客户端软件包用于自动校准日期时间和频率偏差:
```bash
dnf install chrony
systemctl enable --now chronyd.service
chronyc sources -v
```
最后一步是为了提高用户体验而做的个性化定制工作——即让终端默认显示二十四小时制的时间格式以及允许 root 用户从远端登录管理机器。
编辑用户的 shell 初始化文件 `.bashrc`, 添加下面两行代码使得每次新开 session 后都能看到想要的效果:
```bash
echo 'export TIME_STYLE="+%Y-%m-%d %H:%M:%S"' >> ~/.bashrc
source ~/.bashrc
```
针对远程 SSH 登录权限问题,需要编辑 `/etc/ssh/sshd_config` 文件中的 PermitRootLogin 字段设为 yes ,之后记得再次重启 sshd 服务以便加载新的配置项。
阅读全文