当前位置: 首页 > article >正文

综合实验——用户远程登陆并更改文件

实验目标

主机A远程登陆到主机B,主机B上创建一个web服务器,主机A上的文件可以以crontab的方式(每分钟执行一次),将内容更新到主机B上创建的web网站里的文件里面去,并包含正确的时间戳

实验步骤

  1. 在主机B上创建一个Web服务器。
  2. 在主机A上设置crontab任务,每分钟执行一次脚本。
  3. 在脚本中,使用SSH将主机A上的文件内容更新到主机B的Web服务器上的文件中。
  4. 配置防火墙规则,允许主机A通过SSH连接到主机B。
  5. 配置SELinux,确保Web服务器可以正确地读写文件。

步骤1:在主机B上创建Web服务器

#安装Apache
sudo yum install httpd
#创建一个简单的HTML文件作为Web页面的内容
echo "<html><body><h1>Welcome to mysite</h1></body></html>" > /var/www/html/index.html

启动Apache服务并设置为开机自启:

sudo systemctl start httpd
sudo systemctl enable httpd

 步骤2:在主机A上设置crontab任务

创建一个test.txt文件

vim test.txt

#内容
hello Linux
welcome to RHCE
HAHAHAHA

如果状态为“active(running)”则表示SSH正常运行 

安装SSH服务

sudo apt-get install openssh-server

 确认SSH是否安装并正在运行

service ssh status

配置SSH以允许无密码登录到zx2

#创建master主机自己的SSH密钥对(公钥+私钥):
ssh-keygen -t rsa 
#把RSA公钥拷贝到ServerB节点
ssh-copy-id zx2@192.168.134.130

创建一个脚本update_website.sh,该脚本将使用SSH将主机A上的文件内容更新到主机B的Web服务器上的文件中:

#!/bin/bash

# 主机B的IP地址
REMOTE_HOST="192.168.134.130"

# 主机A上的文件路径
LOCAL_FILE="/home/zx/file9"

# 主机B上Web服务器的文件路径
REMOTE_FILE="/var/www/html/index.html"

# 使用SSH将主机A上的文件内容更新到主机B的Web服务器上的文件中
ssh zx2@${REMOTE_HOST} "cat >${REMOTE_FILE}" < ${LOCAL_FILE}

确保脚本具有执行权限: 

chmod +x update_website.sh

编辑crontab文件,添加以下行来每分钟执行一次脚本:

设置crontab任务
crontab -e

每分钟执行一次脚本
* * * * * /path/to/update_website.sh

步骤3:配置防火墙规则 

#在主机B上,确保允许SSH连接:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.134.129" port protocol="tcp" port="22" accept'

#在主机B上,允许HTTP流量通过防火墙
sudo firewall-cmd --permanent --add-service=http

sudo firewall-cmd --reload

步骤4:配置SELinux

在主机B上,设置SELinux上下文,允许远程写入Web内容

sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html/index.html"
sudo restorecon -v /var/www/html/index.html

 步骤5:检测实验是否成功

访问主机B的Web服务器,检查内容是否每分钟更新

curl http://192.168.134.130/

 


http://www.kler.cn/a/419381.html

相关文章:

  • 解决jupyter notebook 新建或打开.ipynb 报500 : Internal Server Error(涉及jinja2兼容性问题)
  • 【软件安装】在Ubuntu中安装mysql5.7
  • Linux下的三种 IO 复用
  • 【NLP 4、数学基础】
  • LabVIEW内燃机气道试验台测控系统
  • 《操作系统 - 清华大学》6 -3:局部页面置换算法:最近最久未使用算法 (LRU, Least Recently Used)
  • 网络七层杀伤链
  • 网络安全-夜神模拟器如何通过虚拟机的Burp Suite代理应用程序接口
  • python学习笔记9-零散知识点
  • vue3 路由跳转携带参数以及其他页面接收参数
  • 数据库学习记录03
  • 鸿蒙开发:自定义一个任意位置弹出的Dialog
  • React第十节组件之间传值之context
  • 扩散模型赋能3D 视觉的综述报告
  • 通信原理实验:PCM编译码
  • CEF127 编译指南 Linux篇 - 安装Git和Python(三)
  • Supervisor使用教程
  • Ubuntu20.04离线安装全教程(包括DellR940重置Raid 5、安装Ubuntu、设置root、安装nvidia英伟达显卡驱动及设置防火墙白名单)
  • C#窗体小程序计算器
  • matlab2024a安装
  • PHP 去掉特殊不可见字符 “\u200e“
  • Electron + vue3 打包之后不能跳转路由
  • 【网络篇】HTTP知识
  • vue基础之2:搭建vue开发环境、Hello小案例
  • 【单细胞数据库】癌症单细胞数据库CancerSEA
  • 在开发环境中,前端(手机端),后端(电脑端),那么应该如何设置iisExpress