实战练习之Linux上实现shell脚本自动化编程

实验拓扑要求

在这里插入图片描述

主机环境描述

在这里插入图片描述
注意:

  • 172.25.250.101-172.25.250.105 共 5 个 IP 地址由servera.exam.com服务器进行提供。
  • 172.25.250.106 由 serverb.exam.com 服务器进行提供。

需求描述

1. 172.25.250.101 主机上的 Web 服务要求提供 www.exam.com Web站点,该站点在任何路由可达
的主机上被访问,页面内容显示为 "Hello,Welcome to www.exam.com !",并提供
content.exam.com/yum/AppStream和content.exam.com/yum/BaseOS URL 作为网络仓库供所
有主机使用。
2. 172.25.250.102 主机提供基于Chronyd 的 NTP 服务将本主机作为时间服务器,对外提供 NTP 服
务,并设置本服务器为 3 层。
3. 172.25.250.103 主机提供的MySQL 数据库服务,要求使用需求1中提供的仓库进行安装,并将数据
库密码设定为 redhat。创建名称为 bbs 的数据库提供给论坛服务使用。
4. 172.25.250.104 主机提供 NFS 服务,该服务将导出本地的 /bbs 目录作为论坛数据目录,该导出指
定只能论坛所在主机使用,并且开机自动挂载。
5. 172.25.250.105 主机提供 DNS 服务,该服务需要提供对项目中所有主机名的正向和反向解析,并
要求所有服务器的 DNS 配置为该 DNS 服务器。
6. 172.25.250.106 主机提供基于 Discuz 的论坛服务,该论坛服务使用 172.25.250.103 主机提供的数
据库 bbs,使用 172.25.250.104 主机提供的 NFS 作为论坛数据目录,并开机挂载。并使用
172.25.250.101 主机提供的网络仓库,172.25.250.102 主机提供的 NTP 服务,172.25.250.105 主
机提供的 DNS 服务。
7. 所有服务器的防火墙服务和 SELinux 服务必须开启。
8. 所有服务器提供的网络服务必须在系统重启后仍然可以正常提供服务。
9. 根据所有服务的相关代码,编写一键部署shell脚本,最基础的功能为 通过执行该脚本实现所有上面
所有需求,要求脚本必须在 servera.exam.com 主机上运行,并支持多次运行。

解答

环境准备:首先准备两台虚拟机,然后手动将两台虚拟机上的IP都修改为题目要求的,并且在两台虚拟机之间相互直接配置ssh公钥认证实现无密码自动登录。并且将仓库的压缩包传到101主机的根目录下面。以便实现shell脚本的自动化运行。

1、要想实现题目中的网络仓库,就要先配置本地仓库,来下载dns,http进行域名解析,能够在网页中通过这个content.exam.com/yum/AppStream来访问到其文件目录。

#首先先配置本地仓库
#配置本地仓库的函数代码如下
bendi(){num=`/usr/bin/ls -l /mnt | grep "total" | cut -d" " -f2`if [ $num -eq 0 ];thenecho 'no mount'/usr/bin/mount /dev/sr0 /mntecho 'success mounted'elseecho 'is mounted'fi/usr/bin/cat>/etc/yum.repos.d/myrepo.repo<<"EOF"
[baseOS]
name=baseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=/mnt/AppStream
gpgcheck=0
EOF
}#然后下载httpd,dns服务
xiazai(){/usr/bin/yum install httpd  bind -y
systemctl start httpd
systemctl start namedsystemctl enable httpd
systemctl enable named
}

下载完服务后,就先配置web服务器,能够实现页面访问。并且要在本地hosts上面写主机名解析文件。其代码如下:


#Web服务
web(){
/usr/bin/mkdir /www
/usr/bin/mkdir /www/exam
/usr/bin/mkdir /www/exam/yum
host=`grep -o "172.25.250.101 www.exam.com" /etc/hosts`
if [ $? -eq 1 ];thenecho "172.25.250.101 www.exam.com" >> /etc/hosts
fi
echo "Hello,Welcome to www.exam.com" > /www/exam/index.html/usr/bin/cat>/etc/httpd/conf.d/vhost.conf<<"EOF"
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 172.25.250.101:80>
documentroot /www/exam
servername www.exam.com
</virtualhost>
<directory /www/exam/yum>
Options Indexes FollowSymLinks
allowoverride none
require all granted
</directory>
EOF
}

2、配置DNS服务,能够正向反向解析。并且在172.25.250.106上面能够解析成功

#配置dns 
dns(){
/usr/bin/cat>/etc/named.conf<<"EOF"
options {listen-on port 53 { 172.25.250.105; };directory       "/var/named";
};zone "exam.com" IN {type master;file "named.exam";
};zone "250.25.172.in-addr.arpa" IN {type master;file "named.fanxiang";
};
EOF
/usr/bin/cat>/var/named/named.exam<<"EOF"
$TTL 1d
@       IN      SOA     @       admin.exam.com. (20240719011111)IN      NS      ns.exam.com.IN      MX      10 mail.exam.com.
ns      IN      A       172.25.250.105
www     IN      A       172.25.250.101
content IN      A       172.25.250.101
ntp     IN      A       172.25.250.102
mysql   IN      A       172.25.250.103
nfs     IN      A       172.25.250.104
dns     IN      A       172.25.250.105
bbs     IN      A       172.25.250.106
EOF
/usr/bin/cat>/var/named/named.fanxiang<<"EOF"
$TTL 1d
@       IN      SOA     @       admin.exam.com. (20240719011111)IN      NS      ns.exam.com.IN      MX      10 mail.exam.com.
105     IN 	PTR     ns  
101     IN 	PTR     content.exam.com.  
101     IN 	PTR     www.exam.com.
102     IN 	PTR     ntp.exam.com. 
103     IN 	PTR     mysql.exam.com.
104     IN 	PTR     nfs.exam.com.
105     IN 	PTR     dns.exam.com.
106     IN 	PTR     bbs.exam.com.
EOF
#其是将106主机的dns改成dns,使其能够进行正反解析
ssh root@172.25.250.106 << 'EOF'
nmcli connection modify ens160 ipv4.dns 172.25.250.105
nmcli connection up ens160
EOF
}
#重启服务
reloa(){systemctl restart namedsystemctl restart httpd
}

3、在101和106上分别创建网络仓库,使其能够在网页中访问。

#在101上面配置网络仓库
wangluo(){
#配置网络仓库
umount /dev/sr0
mv /etc/yum.repos.d/myrepo.repo myrepo
mount /dev/sr0 /www/exam/yum
/usr/bin/cat>/etc/yum.repos.d/yum.repo<<"EOF"
[baseOS]
name=baseOS
baseurl=http://content.exam.com/yum/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=http://content.exam.com/yum/AppStream
gpgcheck=0
EOF
}#在106上创建网络仓库
serverwangluo(){
ssh root@172.25.250.106 << END
cat>/etc/yum.repos.d/yum.repo<< EOF
[baseOS]
name=baseOS
baseurl=http://172.25.250.101/yum/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=http://172.25.250.101/yum/AppStream
gpgcheck=0
EOF
END
}

4、在101上配置NTP服务器。

#时间服务器 NTP
ntp(){local1=`grep -o "local stratum 3" /etc/chrony.conf`
if [ $? -eq 0 ];thenecho "existed"
elseecho "local stratum 3" >> /etc/chrony.conf
fi
allow1=`grep -0 "allow 172.25.250.0/24" /etc/chrony.conf`
if [ $? -eq 0 ];thenecho "existed"
elseecho "allow 172.25.250.0/24">>/etc/chrony.conf
fisystemctl enable chronyd.servicesystemctl restart chronyd.servicessh root@172.25.250.106 << 'EOF'
echo "server 172.25.250.102 iburst" >> /etc/chrony.conf
systemctl enable chronyd.service
systemctl restart chronyd.service
exit
EOF
}

5、来配置nfs服务,来共享/bbs的目录文件内容。106实现自动挂载。

nfs(){#serverdnf install nfs-utils -ysystemctl start nfs-servermkdir /bbschmod 777 /bbsecho "/bbs *(rw)" > /etc/exportsexportfs -rfirewall-cmd --permanent --add-service=nfsfirewall-cmd --permanent --add-service=mountdfirewall-cmd --permanent --add-service=rpc-bindfirewall-cmd --reloadsystemctl restart nfs-server#clientssh root@172.25.250.106 << 'EOF'
yum install httpd -y
systemctl restart httpd
dnf install nfs-utils -y
systemctl start nfs-server
yum install autofs -y
systemctl start autofs
systemctl enable autofs
echo "/var/www/html/  /etc/auto.nfs" >> /etc/auto.master
echo "bbs 172.25.250.104:/bbs" >> /etc/auto.nfs
systemctl restart autofs
EOF
}

6、安装MySQL,并初始化密码。并实现两边都能登录。并且来创建数据库bbs来共享。

mysql(){rpm1=`rpm -qa | grep mariadb`if [ $? -eq 0 ];thenecho "existed"elsesudo dnf install mariadb-server -yfifirewall-cmd --add-service=mysql --permanentfirewall-cmd --reloadsudo systemctl start mariadbsudo systemctl enable mariadbMYSQL_ROOT_PASSWORD="redhat"sudo mysql_secure_installation <<'EOF'
Y
$MYSQL_ROOT_PASSWORD
$MYSQL_ROOT_PASSWORD
Y
Y
Y
Y
EOF
}
user(){sudo mysql -uroot -predhat << 'EOF'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
EOF
}
createdatabase(){sudo mysql -uroot -predhat << 'EOF'
create database bbs;
exit;
EOF}

7、配置论坛服务


luntan(){
cp /root/Discuz_X3.5_SC_UTF8_20230520.zip  /bbs
ssh root@172.25.250.106 << 'EOF'
sudo dnf install mariadb-server -y
yum install httpd -y
yum install php* -y
systemctl restart httpd
cd /var/www/html/bbs
unzip Discuz_X3.5_SC_UTF8_20230520.zip 
chmod 777  /var/www/html/bbs/upload/config/ /var/www/html/bbs/upload/data/ /var/www/html/bbs/upload/uc_client/ /var/www/html/bbs/upload/uc_server/  -R
EOF
}#cp /root/Discuz_X3.5_SC_UTF8_20230520.zip  /var/www/html/bbs
luntanweb(){ssh root@172.25.250.106 <<"EOF"
cat>/etc/httpd/conf.d/vhost.conf<<END
<directory /var/www/html>
allowoverride none
require all granted
</directory>
<virtualhost 172.25.250.106:80>
documentroot /var/www/html/bbs
servername 172.25.250.106
</virtualhost>
ENDEOF
}

8、配置防火墙SELinux服务,

#防火墙SELinux
fire101(){systemctl start firewalldfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=dnsfirewall-cmd --permanent --add-service=ntpfirewall-cmd --reloadsetenforce 1setsebool -P httpd_use_nfs 1setsebool -P httpd_can_network_connect_db onchcon -t httpd_sys_content_t /www/exam/index.html -Rsystemctl restart httpd
}
fire106(){
ssh root@172.25.250.106 << 'EOF'
systemctl start firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload
setenforce 1
setsebool -P httpd_use_nfs 1
setsebool -P httpd_can_network_connect_db on
systemctl restart httpd
sudo systemctl start mariadb
sudo systemctl enable mariadb
EOF
}

所有代码

#!bin/bash#配置ip
ip(){nmcli connection modify ens160 ipv4.addresses 172.25.250.101/24
nmcli connection modify ens160 ipv4.gateway 172.25.250.2
nmcli connection modify ens160 ipv4.dns 172.25.250.105
nmcli connection modify ens160 ipv4.method manual
nmcli connection modify ens160 connection.autoconnect yesnmcli connection modify ens160 +ipv4.addresses 172.25.250.102/24
nmcli connection modify ens160 +ipv4.addresses 172.25.250.103/24
nmcli connection modify ens160 +ipv4.addresses 172.25.250.104/24
nmcli connection modify ens160 +ipv4.addresses 172.25.250.105/24
nmcli connection up ens160
}
#配置本地仓库
bendi(){num=`/usr/bin/ls -l /mnt | grep "total" | cut -d" " -f2`if [ $num -eq 0 ];thenecho 'no mount'/usr/bin/mount /dev/sr0 /mntecho 'success mounted'elseecho 'is mounted'fi/usr/bin/cat>/etc/yum.repos.d/myrepo.repo<<"EOF"
[baseOS]
name=baseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=/mnt/AppStream
gpgcheck=0
EOF
}#下载httpd,dnsxiazai(){/usr/bin/yum install httpd  bind -y
systemctl start httpd
systemctl start namedsystemctl enable httpd
systemctl enable named
}#Web服务
web(){/usr/bin/mkdir /www
/usr/bin/mkdir /www/exam
/usr/bin/mkdir /www/exam/yumhost=`grep -o "172.25.250.101 www.exam.com" /etc/hosts`
if [ $? -eq 1 ];thenecho "172.25.250.101 www.exam.com" >> /etc/hosts
fi
echo "Hello,Welcome to www.exam.com" > /www/exam/index.html/usr/bin/cat>/etc/httpd/conf.d/vhost.conf<<"EOF"
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 172.25.250.101:80>
documentroot /www/exam
servername www.exam.com
</virtualhost>
<directory /www/exam/yum>
Options Indexes FollowSymLinks
allowoverride none
require all granted
</directory>
EOF
}#防火墙SELinux
fire101(){systemctl start firewalldfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=dnsfirewall-cmd --permanent --add-service=ntpfirewall-cmd --reloadsetenforce 1setsebool -P httpd_use_nfs 1setsebool -P httpd_can_network_connect_db onchcon -t httpd_sys_content_t /www/exam/index.html -Rsystemctl restart httpd
}#配置dns 
dns(){
/usr/bin/cat>/etc/named.conf<<"EOF"
options {listen-on port 53 { 172.25.250.105; };directory       "/var/named";
};zone "exam.com" IN {type master;file "named.exam";
};zone "250.25.172.in-addr.arpa" IN {type master;file "named.fanxiang";
};
EOF
/usr/bin/cat>/var/named/named.exam<<"EOF"
$TTL 1d
@       IN      SOA     @       admin.exam.com. (20240719011111)IN      NS      ns.exam.com.IN      MX      10 mail.exam.com.
ns      IN      A       172.25.250.105
www     IN      A       172.25.250.101
content IN      A       172.25.250.101
ntp     IN      A       172.25.250.102
mysql   IN      A       172.25.250.103
nfs     IN      A       172.25.250.104
dns     IN      A       172.25.250.105
bbs     IN      A       172.25.250.106
EOF
/usr/bin/cat>/var/named/named.fanxiang<<"EOF"
$TTL 1d
@       IN      SOA     @       admin.exam.com. (20240719011111)IN      NS      ns.exam.com.IN      MX      10 mail.exam.com.
105     IN 	PTR     ns  
101     IN 	PTR     content.exam.com.  
101     IN 	PTR     www.exam.com.
102     IN 	PTR     ntp.exam.com. 
103     IN 	PTR     mysql.exam.com.
104     IN 	PTR     nfs.exam.com.
105     IN 	PTR     dns.exam.com.
106     IN 	PTR     bbs.exam.com.
EOF
ssh root@172.25.250.106 << 'EOF'
nmcli connection modify ens160 ipv4.dns 172.25.250.105
nmcli connection up ens160
EOF
}
#重启服务
reloa(){systemctl restart namedsystemctl restart httpd
}
wangluo(){
#配置网络仓库
umount /dev/sr0
mv /etc/yum.repos.d/myrepo.repo myrepo
mount /dev/sr0 /www/exam/yum
/usr/bin/cat>/etc/yum.repos.d/yum.repo<<"EOF"
[baseOS]
name=baseOS
baseurl=http://content.exam.com/yum/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=http://content.exam.com/yum/AppStream
gpgcheck=0
EOF
}
:<<BLOCK
servercangku(){ssh root@172.25.250.106 << 'EOF'
/usr/bin/mount /dev/sr0 /mnt
echo "[baseos]" >> /etc/yum.repos.d/myrepo.repo
echo "name=baseOS" >> /etc/yum.repos.d/myrepo.repo
echo "baseurl=/mnt/BaseOS" >> /etc/yum.repos.d/myrepo.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/myrepo.repo
echo "[appstream]" >> /etc/yum.repos.d/myrepo.repo
echo "name=appstream" >> /etc/yum.repos.d/myrepo.repo
echo "baseurl=/mnt/AppStream" >> /etc/yum.repos.d/myrepo.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/myrepo.repo
exit
EOF
}
BLOCKserverwangluo(){
ssh root@172.25.250.106 << END
cat>/etc/yum.repos.d/yum.repo<< EOF
[baseOS]
name=baseOS
baseurl=http://172.25.250.101/yum/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=http://172.25.250.101/yum/AppStream
gpgcheck=0
EOF
END
}serverdns(){
ssh root@172.25.250.106 << 'EOF'
/usr/bin/yum install httpd  bind -y
systemctl start httpd
systemctl start named
systemctl enable httpd
systemctl enable named
EOF
}
#时间服务器 NTP
ntp(){local1=`grep -o "local stratum 3" /etc/chrony.conf`
if [ $? -eq 0 ];thenecho "existed"
elseecho "local stratum 3" >> /etc/chrony.conf
fi
allow1=`grep -0 "allow 172.25.250.0/24" /etc/chrony.conf`
if [ $? -eq 0 ];thenecho "existed"
elseecho "allow 172.25.250.0/24">>/etc/chrony.conf
fisystemctl enable chronyd.servicesystemctl restart chronyd.servicessh root@172.25.250.106 << 'EOF'
echo "server 172.25.250.102 iburst" >> /etc/chrony.conf
systemctl enable chronyd.service
systemctl restart chronyd.service
exit
EOF
}nfs(){#serverdnf install nfs-utils -ysystemctl start nfs-servermkdir /bbschmod 777 /bbsecho "/bbs *(rw)" > /etc/exportsexportfs -rfirewall-cmd --permanent --add-service=nfsfirewall-cmd --permanent --add-service=mountdfirewall-cmd --permanent --add-service=rpc-bindfirewall-cmd --reloadsystemctl restart nfs-server#clientssh root@172.25.250.106 << 'EOF'
yum install httpd -y
systemctl restart httpd
dnf install nfs-utils -y
systemctl start nfs-server
yum install autofs -y
systemctl start autofs
systemctl enable autofs
echo "/var/www/html/  /etc/auto.nfs" >> /etc/auto.master
echo "bbs 172.25.250.104:/bbs" >> /etc/auto.nfs
systemctl restart autofs
EOF
}mysql(){rpm1=`rpm -qa | grep mariadb`if [ $? -eq 0 ];thenecho "existed"elsesudo dnf install mariadb-server -yfifirewall-cmd --add-service=mysql --permanentfirewall-cmd --reloadsudo systemctl start mariadbsudo systemctl enable mariadbMYSQL_ROOT_PASSWORD="redhat"sudo mysql_secure_installation <<'EOF'
Y
$MYSQL_ROOT_PASSWORD
$MYSQL_ROOT_PASSWORD
Y
Y
Y
Y
EOF
}createdatabase(){sudo mysql -uroot -predhat << 'EOF'
create database bbs;
exit;
EOF}
user(){sudo mysql -uroot -predhat << 'EOF'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
EOF
}luntan(){
cp /root/Discuz_X3.5_SC_UTF8_20230520.zip  /bbs
ssh root@172.25.250.106 << 'EOF'
sudo dnf install mariadb-server -y
yum install httpd -y
yum install php* -y
systemctl restart httpd
cd /var/www/html/bbs
unzip Discuz_X3.5_SC_UTF8_20230520.zip 
chmod 777  /var/www/html/bbs/upload/config/ /var/www/html/bbs/upload/data/ /var/www/html/bbs/upload/uc_client/ /var/www/html/bbs/upload/uc_server/  -R
EOF
}#cp /root/Discuz_X3.5_SC_UTF8_20230520.zip  /var/www/html/bbs
luntanweb(){ssh root@172.25.250.106 <<"EOF"
cat>/etc/httpd/conf.d/vhost.conf<<END
<directory /var/www/html>
allowoverride none
require all granted
</directory>
<virtualhost 172.25.250.106:80>
documentroot /var/www/html/bbs
servername 172.25.250.106
</virtualhost>
ENDEOF
}
fire106(){
ssh root@172.25.250.106 << 'EOF'
systemctl start firewalld
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload
setenforce 1
setsebool -P httpd_use_nfs 1
setsebool -P httpd_can_network_connect_db on
systemctl restart httpd
sudo systemctl start mariadb
sudo systemctl enable mariadb
EOF
}
main(){
#ip
bendi
xiazai
web
fire101
dns
reloa
wangluo
serverwangluo
serverdns
ntp
nfs
mysql
createdatabase
user
luntan
luntanweb
fire106
}
main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

A Comprehensive Study of Knowledge Editing for Large Language Models

大型语言模型&#xff08;LLMs&#xff09;在理解和生成与人类交流密切相关的文本方面表现出了非凡的能力。然而&#xff0c;一个主要的限制在于训练期间的大量计算需求&#xff0c;这是由于它们的广泛参数化而产生的。世界的动态性质进一步加剧了这一挑战&#xff0c;需要经常…

Unity UGUI 之Text 控件

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 1.Text是什么 UI里面写文本的&#xff08;注意是legacy Text&#xff0c;而不是TextmeshP…

前端网页打开PC端本地的应用程序实现方案

最近开发有一个需求&#xff0c;网页端有个入口需要跳转三维大屏&#xff0c;而这个大屏是一个exe应用程序。产品需要点击这个入口&#xff0c;并打开这个应用程序。这个就类似于百度网盘网页跳转到PC端应用程序中。 这里我们采用添加自定义协议的方式打开该应用程序。一开始可…

springboot项目从jdk8升级为jdk17过程记录

背景&#xff1a;公司有升级项目jdk的规划&#xff0c;计划从jdk8升级到jdk11 开始 首先配置本地的java_home 参考文档&#xff1a;Mac环境下切换JDK版本及不同的maven-CSDN博客 将pom.xml中jdk1.8相关的版本全部改为jdk17&#xff0c;主要是maven编译插件之类的&#xff0c…

mysql定时备份

为什么写这篇文章 最近项目里面需要定时备份mysql的数据&#xff0c;网上找了下&#xff0c;找到了一些比较好的解决方案。但是发现有几个地方与自己不匹配&#xff0c;我期望有如下 备份过程不能锁表&#xff0c;网上很多都是会锁表备份定时任务无法执行&#xff0c;但是手动…

【如何在Jenkins的从节点切换NPM镜像源查看和切换】

【问题】 Jenkins打包时&#xff0c;前端npm构建时很慢&#xff0c;所有需要更换镜像源 【自查】 找到Jenkins从节点上的nodejs安装的路径&#xff0c;进入bin目录 执行./npm -v查看是不能正常查看&#xff0c; [rootlocalhost bin]# ./npm -v /usr/bin/env: ‘node’: No su…

redis 基础命令

1.数据库命令 select 库名&#xff1b;切换库 flushdb 清空库 flushall 清空所有库 redis支持的数据类型有很多&#xff0c;使用最频繁的有String 字符串类型&#xff0c;List队列&#xff0c;Hash&#xff0c;Zset有序集合&#xff0c;Set集合。 2.字符串类型命令 表示k…

【Python机器学习】k-近邻算法简单实践——电影分类

k-近邻算法&#xff08;KNN&#xff09;的工作原理是&#xff1a;存在一个样本数据集合&#xff0c;也被称为训练样本集&#xff0c;并且样本集中每个数据都存在标签&#xff0c;即我们知道样本集中每一数据与所属分类的对应关系&#xff0c;输入没有标签的数据后&#xff0c;将…

Flink之重启策略

目录 1、固定延迟重启策略 2、失败率重启策略 3、不重启策略 在设置完 CheckPoint() 检查点机制后&#xff0c;不设置重启策略的话&#xff0c;&#xff0c;可以无限重启程序&#xff0c;那么设置的检查点机制也就没有什么意义了。因此&#xff0c;在生产实践中&#xff0c;…

android手势监听

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、使用四、 如何实…

昇思25天学习打卡营第17天 | CycleGAN图像风格迁移互换

通过深入学习CycleGAN模型&#xff0c;我对无监督图像到图像的转换技术有了更深的理解。CycleGAN不仅能在没有成对训练样本的情况下实现域之间的转换&#xff0c;而且在保持内容结构的同时成功转换图像风格&#xff0c;这在许多应用中都非常有用&#xff0c;如艺术风格转换、季…

VAE、GAN与Transformer核心公式解析

VAE、GAN与Transformer核心公式解析 VAE、GAN与Transformer&#xff1a;三大深度学习模型的异同解析 【表格】VAE、GAN与Transformer的对比分析 序号对比维度VAE&#xff08;变分自编码器&#xff09;GAN&#xff08;生成对抗网络&#xff09;Transformer&#xff08;变换器&…

Python从0到100(四十三):数据库与Django ORM 精讲

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

SpringMVC 控制层框架-下

五、SpringMVC其他扩展 1. 异常处理机制 1.1 异常处理概念 开发过程中是不可避免地会出现各种异常情况&#xff0c;例如网络连接异常、数据格式异常、空指针异常等等。异常的出现可能导致程序的运行出现问题&#xff0c;甚至直接导致程序崩溃。因此&#xff0c;在开发过程中&a…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 小区小朋友统计(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

智能编程,一触即发:使用AIGC优化CSS——提升前端开发效率与质量

文章目录 一、AIGC在CSS优化中的应用场景智能代码生成自动布局调整性能优化建议样式和色彩建议 二、使用AIGC优化CSS的具体步骤明确需求选择AIGC工具输入描述或设计稿审查和调整集成和测试 三、AIGC优化CSS的优势与挑战优势&#xff1a;挑战&#xff1a; 《CSS创意项目实践&…

AttributeError: module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘

AttributeError: module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘ 目录 AttributeError: module ‘selenium.webdriver‘ has no attribute ‘PhantomJS‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的…

数据结构初阶 · 二叉搜索树

目录 前言: 二叉搜索树的实现 二叉搜索树的基本结构 增 查 中序遍历 删 前言: 在最初学习二叉树的时候&#xff0c;就提及到过单独用树来存储数据是既不如链表也不如顺序表的&#xff0c;二叉树的用处可以用来排序&#xff0c;比如堆排序&#xff0c;也可以用来搜索数据…

java-数据结构与算法-02-数据结构-05-栈

文章目录 1. 栈1. 概述2. 链表实现3. 数组实现4. 应用 2. 习题E01. 有效的括号-Leetcode 20E02. 后缀表达式求值-Leetcode 120E03. 中缀表达式转后缀E04. 双栈模拟队列-Leetcode 232E05. 单队列模拟栈-Leetcode 225 1. 栈 1. 概述 计算机科学中&#xff0c;stack 是一种线性的…

netty入门-3 EventLoop和EventLoopGroup,简单的服务器实现

文章目录 EventLoop和EventLoopGroup服务器与客户端基本使用增加非NIO工人NioEventLoop 处理普通任务与定时任务 结语 EventLoop和EventLoopGroup 二者大概是什么这里不再赘述&#xff0c;前一篇已简述过。 不理解也没关系。 下面会简单使用&#xff0c;看了就能明白是什么 这…