($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('H:i');
$s = "";
return $s;
}
// form_date('start', '2018-07-05') 为空则当前日期
function form_date($name, $value = 0, $width = FALSE)
{
$style = '';
if (FALSE !== $width) {
is_numeric($width) AND $width .= 'px';
$style = " style=\"width: $width\"";
}
$value = $value ? $value : date('Y-m-d');
$s = "";
return $s;
}
/**用法
*
* echo form_radio_yes_no('radio1', 0);
* echo form_checkbox('aaa', array('无', '有'), 0);
*
* echo form_radio_yes_no('aaa', 0);
* echo form_radio('aaa', array('无', '有'), 0);
* echo form_radio('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'b');
*
* echo form_select('aaa', array('a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc', ), 'a');
*/
?>组保留的标签 余下为需要删除的标签
unset($oldtag[$key]);
}
}
}
if (!empty($oldtag)) {
$tagids = array();
foreach ($oldtag as $tagid => $tagname) {
$tagids[] = $tagid;
}
well_oldtag_delete($tagids, $tid);
}
$r = well_tag_process($tid, $fid, $create_tag, $tagarr);
return $r;
}
// 删除标签和绑定的主题
function well_oldtag_delete($tagids, $tid)
{
$pagesize = count($tagids);
$arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize);
$delete_tagids = array(); // 删除
$tagids = array();
$n = 0;
foreach ($arrlist as $val) {
++$n;
if (1 == $val['count']) {
// 只有一个主题
$delete_tagids[] = $val['tagid'];
} else {
$tagids[] = $val['tagid'];
}
}
!empty($delete_tagids) and well_tag_delete($delete_tagids);
$arlist = well_tag_thread_find_by_tid($tid, 1, $n);
if ($arlist) {
$ids = array();
foreach ($arlist as $val) $ids[] = $val['id'];
well_tag_thread_delete($ids);
}
!empty($tagids) and well_tag_update($tagids, array('count-' => 1));
}
// 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签
function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array())
{
if (empty($tid)) return '';
// 新标签处理入库
if ($new_tags) {
$threadarr = array();
$tagids = array();
$i = 0;
$size = 5;
$n = count($tagarr);
$n = $n > $size ? $size : $size - $n;
foreach ($new_tags as $name) {
++$i;
$name = trim($name);
$name = stripslashes($name);
$name = strip_tags($name);
$name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name);
$name = htmlspecialchars($name, ENT_QUOTES);
if ($name && $i <= $n) {
// 查询标签
$read = well_tag_read_name($name);
if ($read) {
// 存在 count+1
$tagids[] = $read['tagid'];
} else {
// 入库
$arr = array('name' => $name, 'count' => 1);
$tagid = well_tag_create($arr);
FALSE === $tagid and message(-1, lang('create_failed'));
$read = array('tagid' => $tagid, 'name' => $name);
}
$tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid);
$threadarr[] = $tag_thread;
$tagarr[$read['tagid']] = $read['name'];
}
}
!empty($threadarr) and tag_thread_big_insert($threadarr);
!empty($tagids) and well_tag_update($tagids, array('count+' => 1));
}
$json = empty($tagarr) ? '' : xn_json_encode($tagarr);
return $json;
}
?>return $r;
}
/**
* @param int $page 页数
* @param int $pagesize 每页显示数量
* @return mixed
*/
function link_find($page = 1, $pagesize = 100)
{
$arr = link__find($cond = array(), array('rank' => -1), $page, $pagesize);
return $arr;
}
/**
* @param $id
* @return bool 返回FALSE失败 TRUE成功
*/
function link_delete($id)
{
if (empty($id)) return FALSE;
$r = link__delete(array('id' => $id));
link_delete_cache();
return $r;
}
//--------------------------kv + cache--------------------------
/**
* @return mixed 返回全部友情链接
*/
function link_get($page = 1, $pagesize = 100)
{
$g_link = website_get('friends_link');
if (empty($g_link)) {
$g_link = link_find($page, $pagesize);
$g_link AND website_set('friends_link', $g_link);
}
return $g_link;
}
// delete kv and cache
function link_delete_cache()
{
website_set('friends_link', '');
return TRUE;
}
?> $v = implode(",", $v);
$temp[] = $v;
}
// 去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
// 再将拆开的数组重新组装
$output = array();
foreach ($temp as $k => $v) {
if ($stkeep) $k = $starr[$k];
if ($ndformat) {
$temparr = explode(",", $v);
foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval;
} else $output[$k] = explode(",", $v);
}
return $output;
}
// 合并二维数组 如重复 值以第一个数组值为准
function array2_merge($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array1 as $k => $v) {
isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]);
}
return $arr;
}
/*
* 对二维数组排序 两个数组必须有一个相同的键值
* $array1 需要排序数组
* $array2 按照该数组key排序
* */
function array2_sort_key($array1, $array2, $key = '')
{
if (empty($array1) || empty($array2)) return NULL;
$arr = array();
foreach ($array2 as $k => $v) {
if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) {
$arr[$v[$key]] = $array1[$v[$key]];
} else {
$arr[] = $v;
}
}
return $arr;
}
?>
克隆虚拟机以及重新配置网络网卡进行远程连接-软件玩家 - 软件改变生活!
1 环境
- 桌面虚拟化软件:VMware Workstation 16 Pro
- 远程连接工具:FinalShell 3.9.3.4
- LInux操作系统:CentOS 7
2 操作
-
选择要克隆的虚拟机hadoop04,点击 "虚拟机"选项 -> 点击 “管理” -> 点击 “克隆” -> 弹出 “克隆虚拟机向导” 。
-
克隆虚拟机向导,点击 “下一页” -> 选择克隆源:“虚拟机中的当前状态”,点击 “下一页” -> 选择克隆类型:“创建完整克隆”,点击 “下一页” -> 填写新虚拟机名称和位置,点击 “完成” 。
-
重新生成MAC地址,记录下地址,重启后修改配置中的 MAC 地址为新生成的 MAC 地址。
由于两台虚拟机的网卡配置是一样的。旧虚拟机不启动的前提下,启动新的虚拟机后,FinalShell用原先的SSH连接是可以连接到新的虚拟机,但是两台虚拟机同时启动的话,FinalShell只会连接先完成启动的虚拟机。因此,为了让两台虚拟机都能够同时被远程连接并使用,新虚拟机需要重新生成MAC地址。
-
启动虚拟机并修改网卡配置文件。
主要修改三个唯一标识符:UUID、IPADDR、HWADDR。
UUID 不能和虚拟机的原先的 UUID 一样,可以把最后一个数字改成其他数字;
IPADDR 也不能相同,一般在最后一个点后面的数字基础+1 变成新的 IP;
HWADDR 需要修改成重新生成的MAC地址,这个配置也可以不用写在网卡配置文件中,默认值就是VMware虚拟机设置中的MAC地址。
[root@hadoop02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet # 网卡类型 (通常是Ethemet以太网)
BOOTPROTO=static # 网络启动协议:有三个选项:dhcp 表示动态获取IP地址,static 静态IP,none 表示不指定,就是静态。
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否,可以通过该接口进行各种网络通信,而不仅仅局限于浏览器的网络访问。
DEFROUTE=yes # 默认路由
IPV4_FAILURE_FATAL=no # 是否开启IPV4致命错误检测
IPV6INIT=yes # IPV6是否自动初始化:是(现在还未用到IPV6,不会有任何影响)
IPV6_AUTOCONF=yes #IPV6是否自动配置:是(现在还未用到IPV6,不会有任何影响)
IPV6_DEFROUTE=yes #IPV6是否可以为默认路由:是(现在还未用到IPV6,不会有任何影响)
IPV6_FAILURE_FATAL=no # 是否开启IPV6致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型
NAME=ens33 # 网卡物理设备名称
UUID=86a39133-8xxx-4xxx-8xxx-06702c1d361e # 通用唯一识别码,用于标识网络设备。每一个网卡都会有,不能重复,否则两台linux机器只有一台可上网
DEVICE=ens33
ONBOOT=yes # ONBOOT:是否在系统启动时自动联网
DNS1=8.8.8.8 # 首选DNS服务器的IP地址,用于域名解析。
IPADDR=192.168.128.155 # ip地址(static设置)
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.52.1 # 网关
HWADDR=00:50:56:32:46:B3 # 网络设备的硬件地址,也称为 MAC 地址。它是一个唯一的标识符,用于在网络中识别和寻址设备。在 Linux 系统中,MAC 地址通常用于网络接口的配置。
-
重启网卡。
service network restart
-
使用FinalShell远程连接。
(1) 创建连接。
(2) 点击连接,出现下图,说明远程访问虚拟机 hadoop04_new 成功。
-
重新修改主机名
(1) 将主机名修改为 “hadoop05”。
[root@hadoop04 ~]# vim /etc/hostname
(2) 重启系统。
[root@hadoop04 ~]# reboot
(3)重新远程连接就可以看到新修改的主机名了。
本文标签:
网卡虚拟机网络
更多相关文章
揭秘WiFi密码变身术:特殊字符也能助你一臂之力
当家里购买安装WiFi后,就要针对路由器进行设置密码操作,用来保护网络安全,防止别人偷用自己的WiFi网络。WiFi密码如何更改可以参考以下步骤: 打开路由器的管理页面,一般是通过输入路由器的IP地址来访问(1
iptables入门:快速上手实现网络限速的方法
1、使用 hashlimit来限速 #从eth0网卡进入INPUT链数据,使用模块hashlimit 限制网速为100kbs或2mbs,超过限制的数据包会被DROP。OUTPUT链同理,
一招搞定微软应用商店访问难题:轻松配置网络代理!
Microsoft Store微软应用商店无法加载页面,亲测随便简单设置一下就可以打开。Windows 11 Windows10,打开Microsoft Store很久无法加载,或者加载出错解决方法---设置--网络 &
烦恼的笔记本连不上网络?一看就懂的排查指南!
问题:我在清理完笔记本的灰尘后,重新将电脑复原后,重启了电脑,发现一直连接不到网络,电脑右下角的网络状态显示“!”表示没有网络。 原因:当我把电脑进行拆卸后,然后进行安装复原后,适配器设置已经开启,之前的无线账号不能发现,最后
虚拟机与网络:你的全攻略手册
1、打开软件:2、创建虚拟机:3、选择典型类型: 4、选择安装客户机操作系统:(如果有映像选择映像,如果没有选择稍后安装,切记不要选择安装光盘)5、找到映像安装包,选择安装包:6
灵活切换系统环境,虚拟机是什么?四种常见用法大公开!
往期推荐 1.1 虚拟机的概念 首先给大家介绍一下什么是虚拟机,这里所讲的虚拟机,可能和大家接触过的有些区别,它是一个运行环境,可以在上面执行相应的文件,比如: class文件、odex文件、oat文件等。 1
没有边界的世界旅行:虚拟机让你的系统自由穿梭。
通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访
一文解析:虚拟机的运作原理及常见的几种实例
往期推荐 1.1 虚拟机的概念 首先给大家介绍一下什么是虚拟机,这里所讲的虚拟机,可能和大家接触过的有些区别,它是一个运行环境,可以在上面执行相应的文件,比如: class文件、odex文件、oat文件等。 1
KVM世界里,一招搞定:通过virsh获取虚拟机IP教程
看是一台机器是虚拟机还是实体机的方法 1. cat proccpuinfo 或者 lscpu 查看 CPU 信息。在虚拟机上会显示为 QEMU、KVM、VMware、Xen 等,在物理机上会显示为 Intel 或
揭秘:特殊字符在修改WiFi密码中的超能力用法
当家里购买安装WiFi后,就要针对路由器进行设置密码操作,用来保护网络安全,防止别人偷用自己的WiFi网络。WiFi密码如何更改可以参考以下步骤: 打开路由器的管理页面,一般是通过输入路由器的IP地址来访问(1
家里WiFi密码太简单?立即使用这些技巧增加安全性!
当家里购买安装WiFi后,就要针对路由器进行设置密码操作,用来保护网络安全,防止别人偷用自己的WiFi网络。WiFi密码如何更改可以参考以下步骤: 打开路由器的管理页面,一般是通过输入路由器的IP地址来访问(1
**小白也能学会!VMware Workstation 12装机实操指南**
安装vm虚拟机必须具备两个条件: (1)下载VMware Workstation pro安装程序; 附下载地址: (2)下载需要在虚拟机上安装的系统映像.iso文件,例如:cn_windows_server_2
玩转Xen虚拟机?这几点关键配置你必须知道!
<os><type>hvm<type><loader>usrlibxenboothvmloader<loader><boot dev='n
SSID是啥?带你深入解读隐藏在你设备上的秘密代码
网络SSID是什么意思?无线网络中SSID,是路由器发送的无线信号的名字。如果你将你的无线路由器的SSID:命名为:doing-tech,那么当你的无线路由器开启,并启用了无线功能,和允许了SSID广播,那么你就可以轻易的找到你自己的
无线迷雾:深入解读SSID对连接的影响
SSID(Service Set Identifier)即服务集标识符,是WLAN网络的标识,用来区分不同的WLAN网络。SSID包括BSSID和ESSID两种类型,BSSID通常不被终端用户感知,主要用于管理和维护;而ESSID就是
打造个人无线热点:电脑当路由器的简便指南
1、以管理员身份运行命令提示符快捷键win+R→输入cmd→回车,右键点击,选择以管理员身份运行2、启用并设定虚拟WiFi网卡,运行命令netsh wlan set hostednet
遇到0x00000709或0x00000057?这里有解决网络打印机连接故障的方法!
项目场景:连接网络打印机报错0x00000709或0x00000057解决尝试 问题描述在同一网域内连接打印机网络,遇到如下等警告: 尝试了网上的N种方法,重启、更新驱动、删除系统安全更新、用打印机修复
解锁鸿蒙虚拟机新世界:全面教程与实践步骤
鸿蒙操作系统(HarmonyOS)作为华为自主研发的全场景分布式操作系统,其核心组件之一就是高效的虚拟机技术。鸿蒙虚拟机(Ark Runtime)是专为鸿蒙生态设计的轻量级、高性能执行环境,支持多种编程语言运行,特别是针对方舟编译器优
搞定联想笔记本,为啥搜不到那个无线网络?别人能搜到!
问题:我在清理完笔记本的灰尘后,重新将电脑复原后,重启了电脑,发现一直连接不到网络,电脑右下角的网络状态显示“!”表示没有网络。 原因:当我把电脑进行拆卸后,然后进行安装复原后,适配器设置已经开启,之前的无线账号不能发现,最后
发表评论