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

server/2024/12/3 4:48:09/

实验目标

主机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=httpsudo 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.ppmy.cn/server/146928.html

相关文章

时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式基本介绍 时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x =

LeetCode题解:30.串联所有单词的子串【Python题解超详细,KMP搜索、滑动窗口法】,知识拓展:Python中的排列组合

题目描述 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c; 那么 "…

【机器学习】机器学习学习笔记 - 监督学习 - 多项式回归决策树回归 - 03

多项式回归 解决线性回归的准备性不足问题(线性回归只能是直线&#xff0c;多项式回归引入多项式可以是曲线)通过对预测值进行多项式转换, 使得回归模型可以是非线性的多项式回归的优点是可以处理非线性的数据多项式回归的缺点是它对数据进行了多项式转换 加菲工具&#xff0…

Python实现2048小游戏

2048是一个单人益智游戏&#xff0c;目标是移动和合并数字&#xff0c;以达到2048。 1. 实现效果 Python实现2048小游戏 2. 游戏规则 简单地理解一下规则 基本规则&#xff1a; 4x4棋盘&#xff0c;每个格可包含一个2的倍数的数字&#xff0c;初始时为空&#xff0c;表示0。…

Shell脚本小练习

学习了这么长时间Shell脚本&#xff0c;总得来一次小小的练习吧&#xff0c;那么请看下文&#xff01; 1.用Shell写一个小计算器。 通过read命令获取用户输入的表达式&#xff0c;表达式的格式设定为操作数1 运算符 操作数2&#xff0c;例如53&#xff0c;然后利用设计的脚本…

unity中控制相机跟随物体移动

unity中控制相机跟随物体移动 Main Camera下添加组件&#xff08;follow target&#xff09; 脚本中定义 public Transform trans;将transform拖拽到trans中&#xff0c;让trans可以引用到transform数值&#xff08;方式1&#xff09; 因为属于当前GameObject下的脚本组件…

分布式锁的实现原理

作者&#xff1a;来自 vivo 互联网服务器团队- Xu Yaoming 介绍分布式锁的实现原理。 一、分布式锁概述 分布式锁&#xff0c;顾名思义&#xff0c;就是在分布式环境下使用的锁。众所周知&#xff0c;在并发编程中&#xff0c;我们经常需要借助并发控制工具&#xff0c;如 mu…

缓存使用规范学习

1.规范 size控制: string类型&#xff0c;控制在2KB以内 hash、list、set、zset类型的元素个数&#xff0c;不要超过5000 pipeline命令: 检查多参数命令的参数个数或pipeline命令个数&#xff0c;若值太大&#xff0c;建议减小&#xff08;codis proxy返回结果集超64K&…