热门 2022年国庆第一次出游

时间:2022-10-4   作者:TLYAN   分类: 说说   热度:557°    
时间:2022-10-4   分类: 说说    热度:557  

    在时隔N久后的第一次写一篇小说说。
    国庆放假7天,在家猫了3天(10.1-10.3),之所以没出去呢?有以下几个原因:
       1.疫情;2.前面3天都放假哪里人都多;3.最扎心的一点,一个人你要去哪?
呆了三天的我已经忍不住了,都快发霉了,经过10.3晚上的多方研究10.4日带上侄女她们去观澜的山水田园玩,其实我只是想想,压根没计划。
    今天也就是10.4睡到了10点的样子才舍得起床,收拾好自己后,带上装备(麻包袋1个+泳裤1条+手机2个+钥匙1把)出门了。去侄女家吃午饭顺便带她们去,结果吃完饭统计装备的时候发现忘了一件很严重的事情............忘记了带手机防水袋(所以后面的精彩图片和视频就没有了)后来想想就用我哥的手机刷柜子,我就把手机放柜子里面了。下午约13:00左右正式从元芬地铁站出发。下面单独列出路线:
    【元芬地铁站(6号线)→红山地铁站(6号线)→转→红山地铁站(4号线-牛湖方向)→牛湖地铁站下车换乘(休息了下)→打车去目的地(13:33分)→到达南门门口(13:44分)】
在检票的地方再三确认后我的年票居然没信息(就是不知道是我忘记了买还是忘记了激活,然后没了.)在13:48分买票(水上乐园 140RMB)刷进去后,开始更换衣服准备去游玩了,到此手机也就给没收了。先来几张后面走的时候拍的照片,介绍下大致的景点:



以上就是基本图了按从上到下排线:游泳池(水深0-1.6M);三彩道滑滑梯(要求1.2M 体重60斤-180斤);冲天旋(要求应该是双数人 身高1.5M 我大侄女不达标我就没关注了);冲天旋下面有个节目忘记名字了没注意有要求(2人玩);小喇叭(要求2人,有小孩必须大人带);这个城堡我都不知道怎么介绍(滑滑梯1.5M以下都可以玩);大喇叭(要求1.5米),旁边还有个漂流河(必须要有游泳圈);


    现在开始我们今天的节目,更换装备后第一件事铁定先去游泳了,以我这身高一选铁定是最深的1.6M区域(估计长度10-15米),太浅了人多也不能好好的游泳,这个深水区基本没人为什么呢?因为今天来玩的基本都是带娃来的,或者不怎么会游泳的(今天人不是很多),导致带娃的都在潜水区大概警戒线位置是1.5M吧,然后我这个单身狗就可以尽情的浪了,还没人抢,再经过几个来回的个人秀后,发现像我这种不怎么会游泳的人游的感觉有减肥效果,这个估计是最能提现这个泳池效果的地方了。。。。经过我大侄女再三要求下,更换下一个节目《三彩滑道》


    《三彩滑道》这个项目名字是不是很好听?透露下这个就是由大概8米的滑道(就是小孩子现在玩的滑滑梯)3截还是4节接起来的,不过看着这个高度就害怕;玩这个是有要求的身高1.2M以上,体重60斤-190斤【玩了2次,第一次一个小孩称重(怕小孩不够60斤);第二次看到一个年轻人(怕他的肚子超过190)】,爬楼梯爬的我都喘气了(游泳游累了),等爬上去的时候,说真的我看着都有点胆颤,我目测这个滑道估30米,曲线距离预估35米;我看着的时候第一件事就是再想,万一甩出去了咋整?还是我大侄女胆子大,直接给我做一个表率,冲过去就去滑,我从上看到下,总体感觉这个挺好的啊,没什么难度啊,应该很简单;到我了。。。。。。
    按工作人员指示:摆好姿势,工作人员一推,好吧我就出发了,..............在这过程中,心里贼刺激,还在想着甩出去了咋整???不过很顺利没甩出去..哈哈,不过是不是觉得没甩出去我就合格了?
    不!不!不!,越是快到终点了 越紧张,一阵发慌......................,结果直接撞到水里去喝水了,没看错喝水了,等我站起来迎接我得工作人员说:手脚一定不能松!不能松!不能松,我一想估计是我快到终点的时候紧张了,手脚乱放了,姿势控制不到位;后来去玩了别的项目回来,又来第二次玩这个滑道,有了第一次后,第二次虽然紧张,但是比第一次稳多了,不过第二次和第一次换了一个感觉,第一次是去喝了几口水,第二次到了终点感觉背上有点火辣辣的,看来水也扛不住摩擦,最后工作人员又介绍了,这个项目一般玩一次就好了,玩多了背上贼有感觉.........接下来我们去另外一个《忘记名字的项目》


    《忘记名字的项目》不是不想说是真忘记名字了就在第四张图《冲天旋》下面,等你自己去的时候可以看看这个项目叫啥,顺便告诉我下;这个项目提供项目道具,一般是2个人玩,没有注意明显的注意事项(反正我和我大侄女能玩);这个项目分了左右2块,以项目出口分左右,左边高一点是外露的,右边是一个类似隧道;我们拿到项目道具后先去右边玩,道具上可以坐2人,小孩在前面,大人在后面,这个我玩的时候也在想会不会翻车(我突然觉得我玩这些项目好像都怕,不止前面的,后面的我也怕啊),很好安全的把右边的项目做完了;你是不是以为就完了?????不,到了终点的水池,我们翻车了,没错翻车了,这次翻车不是一个人了,因为我大侄女也在车上,咱俩一起翻到水了去喝水了。。。。。没事继续,带上车去左边继续,左边的工作人员估计看到我们翻车后提出了专业的技术指导,左边这次没翻车,成功的游玩了这个项目第一次;转了一圈后第二次接上;排队拿到道具车后,继续右边起步,不知道我是不是跟右边的项目有点啥愁,第二次玩右边的项目又双叒叕翻车了,这次惨了,膝盖伤了点,不过,膝盖伤了点也不能影响我去左边继续。。。。。。。。。。。。。。。这次顺利结束,接下来我们第四个项目《小喇叭》说到这里,我顺便提下,我侄女她们好像来玩了几次,不过一直没机会玩,这不一来就一直在念叨..............


    《小喇叭》项目就是一个喇叭状,第五张图,画圈圈的那个喇叭原理就是圈圈的右边有个通道,进,从喇叭的吹口位出(描述可能不是很恰当,有建议请留言我改善);这个项目一次是2个人玩一般是一个大人带一个小孩,或者2个大人(2个小孩不行),这个道具车是4个位置,但是手扶只有2对;排队估计排了半个小时(主要有那么几个大姐/阿姨)带自己小孩或者亲戚或者孙子孙女玩,记得一个大姐带了3个娃,那个大姐硬是玩了3次........一个阿姨带着2个娃玩了2次,然后那个车道具又大又有点重量搬的又慢(解释下:他们是从高处飘到低处的,那么玩完了就需要把车道具抗到高处,大概是我们家里的2楼吧,直线高度约3米),可能有人就说了 我为什么不帮忙,我也想帮忙啊,那个排队你正常进不去,我前面的那个阿姨更加不好搬了,我手里还拿着一个呢,楼梯又小(借口我是找好了,你们准备好了反驳我了吗?),所以我放弃了,只能和她们打气,慢点别急...............这个项目呢,估计是我太重了,那个工作人员推了下没下去,再推还没没下去。哈哈,我笑了,最后工作人员发狠了,直接跳起来(夸张描述)来了一个飞毛腿,把我们的道具车踹出去了,到了这里老毛病犯了,再里面晃来晃去又双叒叕翻车了,结果紧张了一把,出来了,你们猜结果?????...........................这次安全着陆安全的很,是不是想打我????我就喜欢您们想打我又打不到的样子.这个项目呢,其实要求不高,只是玩的少。接下来《大喇叭》


    《大喇叭》其实项目和小喇叭是一样的,就是比小喇叭范围大,但是要求也高。小孩要1.5M 才行,扎心了,我..........不过还是说说,大喇叭的道具车是4个人一组的,本来前面是3个想叫我加入的,我准备带带我大侄女,结果 工作人员和我说她身高不达标......................扎心的很。没玩就不说了,下次再去,不带她们....嘿嘿.....;
后面就是漂流了,漂流要自己带游泳圈或者租游泳圈,我们就放弃了,主要是我拿着那玩意没用啊....................,放弃了,这个项目就是在指定河道里面让那个游泳圈载着你飘(我没看,但是我觉的他们应该设计进入某个山洞,然后山洞里面搞漂亮点,这边才有意思,才能吸引人)今天到这里也差不多了,接下来大致介绍下中间的那个《城堡滑滑梯》


    《城堡滑滑梯》为什么叫它城堡滑滑梯,因为这个大致看外形就像城堡,为什么叫滑滑梯呢?因为我大致看了下就是几组滑滑梯组成的;结构就是1组(2个滑道)1-4岁的小朋友滑,其它3条(我注意看到了3条)是5岁以上,1.5M以下玩的,还有2个大水桶(装满了就倒,倒的时候有点像瀑布);滑滑梯我是玩不了的,我小侄女在那玩小的,大侄女去玩那个大的,说里面黑黑的(管道能不黑么)我估计就像你们喝奶茶用的有图形的吸管结构(外形向弹簧结构,不过没那么多圈而已),反正我没试过,毕竟我不止1.5M,感觉挺好玩的,要是我小侄女达标,估计她也去了;不过听我哥说她好像给那个大水桶(瀑布)冲击了下害怕了,玩一下小滑滑梯就躲得远远的,等下次大水桶的水到了再去玩一次,如此循环,后来慢慢带她玩总结了下,大概玩3次就会倒水一次。我特地去试了下那个大水桶的瀑布冲击,还是有点疼的...........这个小孩玩的,我没玩,我就不多说了,其实玩到这个点也该收尾回去了。


    回家,从北门出口回去,换了装备出了闸口后有左边右边选择(左边是南门,右边还有项目)我就想去看看别的项目,结果基本是收费的,然后走了一圈,有什么风火轮等(没细看)有捞鱼、踩皮艇游湖、套宠物、抽奖、最后还有个看动物类似动物园,这些都没去,最后走到大门口发现亏大了,应该也从南门回的................

回去就简单了:出门想锻炼的可以走路去地铁站(估计20分钟吧),打车大概17块钱左右;然后坐地铁4号线,想去哪就去哪


    这里是文章结尾了,从头到尾地铁费好像是5+3;打车去14,回17,门票140;一共花了179元如果算上水和储物柜我们4个人一起大概花了300块钱(2张年票),感觉上嘛,还是值得的,锻炼了一波,也玩了一波,打了这么多字手也疼了,草草结束,下回再见。
截止到这里一共3731个字,不知道字符算不算,我是直接复制到word去统计的。

https 证书工具 Letsencrypt 简单教程

时间:2022-4-16   作者:TLYAN   分类: 学习分享   热度:323°    
时间:2022-4-16   分类: 学习分享    热度:323  

ttps取代http是大势所趋,https的好处本文不在赘述,很多公司和机构都在推进这一进程,Apple公司甚至规定,iOS上的App应用必须使用https。因此,正是受到Apple的限制,我们的站点,几乎是所有的站点,接近上百个,都支持了https。

如何获取SSL证书?
自签名证书
我们可以自己为自己颁发SSL证书,这样的证书满足为http加密的要求,但这样的证书缺少权威性,不会被浏览器所承认。在客户端完全可控的情况下,例如没有经过浏览器,或者使用其他的框架,使用自签名证书也是可行的。此时你只需在客户端将自签名证书加入信任列表;或者修改客户端的证书认证流程,牺牲SSL证书的安全性,让自签名证书能够通过认证。

Startcom
大多业务情况下,我们的SSL证书都需要得到浏览器的承认才有意义,因此必须寻找权威的证书颁发机构。SSL证书被分为很多种类,不同的证书颁发机构有不同的划分方法,大致分为企业型、专业版、增强型、高级版、域名型等等,而这些SSL证书基本都是收费的,根据安全性、权威性等差异,每年的收费从几千到上万不等。

免费的https证书也是有的,首先找到的是startcom机构,一家以色列公司,它提供免费的有效期为一年的https证书。但我们使用了startcom提供的证书不到一年,悲剧就发生了。startcom被国内的360公司的沃通秘密收购,隐瞒了主导权与架构的转移,还伪造SHA-1凭证的分发日期(主要浏览器开发商要求所有 CA 在 2016 年 1 月 1 日之后停止签发 SHA-1 证书,然而沃通 CA 在 2016 年 1 月 1 日之后仍然签发了 SHA-1 证书,通过故意倒填日期,将这些证书伪装成是在 2016 年前签发的),再加上WoSign的免费凭证服务有bug,广大浏览器均不再信任startcom所颁发的证书,包括WoSign的证书。据称,startcom目前已正式宣布将会停止证书业务并吊销现有的根数字证书,也就是说,startcom已经GG了。

云计算
为了推广自家业务,提供一站式服务,很多云计算厂商都已经直接提供SSL证书服务,其中也包含免费的域名型DV证书,这项业务使得SSL证书的获取变得容易很多,大大推进了HTTPS的普及度。但是这类免费证书的使用限制较多。例如不支持泛域名;一个主域名最多只能申请20个证书;一个云计算账号最多只能申请20个证书;一个证书只能匹配一个明细域名等等。总之,云计算服务商提供的免费证书比较适合个人和小微企业使用。试想,如果没有这些限制,还会有多少人花钱买证书呢。

Letsencrypt
由于云计算厂商对于免费SSL证书的种种限制,也为了避免绑定在某个云计算平台。后来找到的免费证书颁发机构是letsencrypt。它是开源,并且完全免费的,它颁发的证书已经被几乎所有的浏览器所认可。

如何部署和更新SSL证书?
SSL证书的有效期是由证书颁发机构设定的,通常会被设为一年。然而,对于letsencrypt,它的证书有效期很短,只有90天有效期,因此证书的更新频率较高。所幸的是,letsencrypt能够较为方便地实现证书的自动化更新。

环境
操作系统:CentOS 7

Webserver:Nginx

安装letsencrypt
yum install git python

git clone https://github.com/letsencrypt/letsencrypt
如若在执行git clone命令时出现以下错误:

Cloning into 'letsencrypt'...
fatal: unable to access 'https://github.com/letsencrypt/letsencrypt/': Peer reports incompatible or unsupported protocol version.
须执行以下命令升级nss、curl、libcurl:

yum update -y nss curl libcurl

使用以下命令运行一次客户端,将自动检查更新并升级(letsencrypt启动后,总是会自动检查更新并升级,除非使用--no-self-upgrade参数显示指定),如果一切正常(事实上,升级后letsencrypt在某些系统、某些云服务商的机器上常常不能正常运行,因为涉及到各种源,版本依赖等问题),将会显示完整的帮助文档。

cd letsencrypt

./letsencrypt-auto --help all

letsencrypt简介
letsencrypt客户端插件的功能包括两个部分:认证和安装。

认证插件通过certonly命令启用,认证功能用于确认你是域名的所有者,并为你的域名获取证书,证书被放置在你的域名所在服务器的/etc/letsencrypt/live/[domain]目录。如果你一次性对多个域名进行认证,则这些域名将共用一个证书文件。

./letsencrypt-auto certonly

证书安装插件通过install命令启用,用于在你的服务器上安装证书,证书安装功能会修改服务器上webserver的配置文件,使得webserver能够提供https服务。

./letsencrypt-auto install

如果要使用同时支持获取证书和安装证书的插件来为你的webserver获取并安装证书,使用run命令,run命令是letsencrypt的默认命令,因此可以略去。run命令也可以分别为证书获取和证书安装指定不同的插件。

./letsencrypt-auto run

./letsencrypt-auto

Plugin

认证

安装

备注

认证方式 (端口)

apache

Y

Y

自动获取和安装证书,适用于Apache2.4 on OSes with libaugeas0 1.0+。

tls-sni-01 (443)

webroot

Y

N

通过webserver的root目录认证来获取证书,适用于处于运行状态的webserver。

http-01 (80)

nginx

Y

Y

自动获取和安装证书,适用于Nginx。

tls-sni-01 (443)

standalone

Y

N

通过letsencrypt自带的standalone服务来获取证书,standalone服务将占用服务器的80或443端口,这就意味着服务器本身的webserver需要处于关闭状态,除非它使用特殊端口。

http-01 (80) or tls-sni-01 (443)

DNS plugins

Y

N

通过修改DNS记录来认证域名所有者以获取证书,这是使用letsencrypt为通配符域名获取证书的唯一方式。

dns-01 (53)

manual

Y

N

以用户自定义的方式获取证书,根据提示指令,用户自己来完成域名认证。即使用交互式或脚本钩子的方式获取证书。

http-01 (80), dns-01 (53) or tls-sni-01 (443)

由于篇幅所限,本文仅对最为基本,也是最关键的webroot、standalone两个证书获取命令进行说明,Apache、Nginx、DNS Plugins、Manual命令本文将不做介绍。

3.1 webroot

webroot通过http文件下载的方式来进行域名认证。通过webroot命令,在获取证书的过程中不用关闭webserver,并且不能关闭webserver。因为webroot将在webserver的对应域名的root目录生成验证文件,并通过webserver提供的http服务执行下载以对域名进行认证,webroot命令依赖于webserver本身。

命令:

./letsencrypt-auto certonly -m dancen@163.com --webroot -w /home/site/dancen -d src.dancen.com
certonly:获取证书

-m:邮箱,证书即将到期时,该邮箱将收到通知,--email

--webroot:获取证书使用的插件是webroot

-w:对应域名root目录的地址,--webroot-path

-d:要认证的域名,--domains

如果要对使用同一root目录的多个域名进行认证,直接增加-d即可:

./letsencrypt-auto certonly --webroot -w /home/site/dancen -d src.dancen.com -d dl.dancen.com

如果要对使用不同root目录的多个域名进行认证,增加一系列的-w -d -d即可:

./letsencrypt-auto certonly --webroot -w /home/site/dancen -d src.dancen.com -d dl.dancen.com -w /home/site/other -d src.other.com -d dl.other.com

webroot命令会在对应域名的${root-path}/.well-known/acme-challenge目录创建一个临时文件,例如对于src.dancen.com,该目录即为/home/site/dancen/.well-known/acme-challeng。letsencrypt服务器会对该临时文件发起http请求,以验证域名。因此,webserver必须得到正确的配置,能够响应letsencrypt服务器对该临时文件的下载请求。你甚至可以配置一个名为.well-known的location节点,专门用于webroot认证。

Nginx配置nginx.conf:

server {

    listen 80;
    server_name src.dancen.com dl.dancen.com;
    access_log off;
    root /home/site;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location /.well-known {
        root /home/site/dancen;
    }

    location / {
        index index.html index.htm;
    }

}

证书获取成功后,letsencrypt会明确提示证书放置的位置,即前文所提到的/etc/letsencrypt/live目录。对于src.dancen.com,其证书所在路径为:

/etc/letsencrypt/live/src.dancen.com/privkey.pem #证书的私钥

/etc/letsencrypt/live/src.dancen.com/cert.pem #服务端证书

/etc/letsencrypt/live/src.dancen.com/chain.pem #证书链的根证书/中间证书

/etc/letsencrypt/live/src.dancen.com/fullchain.pem #完整的证书内容,即服务端证书cert.pem和根证书/中间证书chain.pem的合并内容。

Nginx要用到是privkey.pem和fullchain.pem两个文件,获取证书后,修改Nginx配置如下,重启Nginx后便可启用https了。

Nginx配置nginx.conf:

server {
listen 80;
listen 443 ssl on;
server_name src.dancen.com dl.dancen.com;
ssl_certificate /etc/letsencrypt/live/src.dancen.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/src.dancen.com/privkey.pem;
access_log off;
root /home/site;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location /.well-known {
        root /home/site/dancen;
    }

    location / {
        index index.html index.htm;
    }
}

证书获取成功后,/etc/letsencrypt/renewal目录下产生的文件也需要留意一下:

/etc/letsencrypt/renewal/src.dancen.com.conf

该文件记录了对应域名在证书获取时的命令信息,后文中将会提到的,在执行renew命令更新证书时,将按照该文件所配置的证书获取方式来进行证书更新,与本次获取证书的方式一致。

对于通过webroot重新获取证书和更新证书的情况,Nginx配置前后没有变化,不需要修改,但重启Nginx仍然是必要的,因为Nginx不会重新加载SSL证书。

3.2 standalone

standalone是一个独立的服务,可以看作是一个小型的webserver,它使用80或443端口来和letsencrypt服务器进行通信。因此,在使用standalone获取证书时,需要关闭正在运行的webserver,除非webserver使用的是80端口和443端口之外特殊的端口。

命令:

./letsencrypt-auto certonly --standalone --preferred-challenges tls-sni --email dancen@163.com -d src.dancen.com
--standalone:获取证书使用的插件是standalone

--preferred-challenges tls-sni:使用443端口,如果要使用80端口,使用--preferred-challenges http指定,或者移除--preferred-challenges命令,因为standalone默认就是使用80端口

3.3 管理证书

3.3.1 查看letsencrypt在当前服务器获取的证书

命令:

./letsencrypt-auto certificates
返回:

Found the following certs:
Certificate Name: src.dancen.com
Domains: src.dancen.com, dl.dancen.com
Expiry Date: 2018-09-19 19:53:00+00:00 (VALID: 30 days)
Certificate Path: /etc/letsencrypt/live/src.dancen.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/src.dancen.com/privkey.pem

返回信息包括一系列的证书名称、证书包含的域名、证书的过期时间,以及证书、私钥路径。需要注意的是,较老版本的letsencrypt并不支持certificates命令。

3.3.2 操作证书

通过--cert-name来指定证书的名称,并对证书执行操作,可选的操作有run、certonly、certificates、renew、delete。

命令:

./letsencrypt-auto certonly --cert-name src.dancen.com
run:获取和安装证书

certonly:获取证书

certificates:查看和--cert-name指定的名称匹配的证书信息

renew:更新快要过期的证书

delete:删除证书

3.3.3 撤销证书

通过revoke命令,指定证书路径(请注意,这里不是指定证书名称),撤销该证书。

命令:

./letsencrypt-auto revoke --cert-path /etc/letsencrypt/live/src.dancen.com/cert.pem --reason keycompromise
--cert-path:证书的路径
--reason:撤销证书的原因,可选

证书被撤销以后,通过delete命令来删除证书相关的文件:

./letsencrypt-auto delete --cert-name src.dancen.com

3.3.4 更新证书

证书的更新命令是renew,renew命令会在本机找出所有的证书,并检查证书的过期时间,它只会对有效期不足30天的证书执行更新。如果证书不需要更新,它不会和letsencrypt服务器产生通信,因此,renew命令可以频繁地执行而不会受到letsencrypt服务器的连接次数限制的影响。也是基于这一特点,可以在crontab设置定期任务,频繁地执行renew操作,确保证书不会过期。

renew在更新证书时,是依照/etc/letsencrypt/renewal目录下的配置来运行的。也就是说,原来是通过webroot方式获取的证书,其更新方式也是webroot;原来是通过standalone方式获取的证书,其更新方式也是standalone。

需要补充的是,通过standalone方式来更新证书比较不稳定,letsencrypt常常在运行过程中卡死。而且在运行standalone时,需要关闭webserver。因此,使用standalone方式来更新证书时,不宜将renew操作写入crontab定期执行,其一旦卡死,webserver的启动将受到影响。

命令:

./letsencrypt-auto renew
./letsencrypt-auto renew --dry-run
./letsencrypt-auto renew --force-renewal
renew:对有效期不足30天的证书执行更新

--dry-run:测试续期命令, 使用这个参数并不会真正续期证书

--force-renewal:强制更新证书,即使证书有效期超过了30天

证书更新后,需要重启Nginx,因此可以在letsencrypt添加前置命令和后置命令,前置命令用于关闭Nginx,后置命令用于启动Nginx。

命令:
./letsencrypt-auto renew --pre-hook "/usr/sbin/nginx -s stop" --post-hook "/usr/sbin/nginx"
--per-hook:前置命令

--post-hook:后置命令

3.3.5 关闭letsencrypt自动更新

letsencrypt每次运行都会首先执行自动更新操作,然后才会执行用户指定的操作,这就产生了一些问题。

首先是自动更新操作的耗时问题,特别是在通过standalone来获取证书或更新证书时,首先得关闭webserver,如果letsencrypt的自动更新用时太久,就意味着webserver将长时间处于关闭状态,这势必对业务造成影响。这里引出的另一个问题是,webroot和standalone两种证书获取方式,那种更好?我的经验是,推荐webroot。一来webroot操作可以在webserver运行期间执行,对webserver的影响最小;二则是在实际操作中,webroot方式更加稳定,而standalone方式常常有执行过程中卡住的情况。

其次,升级后letsencrypt在某些系统、某些云服务商的机器上常常不能正常运行,因为涉及到各种源,版本依赖等问题。

因此,除非有必要,否则建议在启动letsencrypt时通过--no-self-upgrade指令关闭自动更新。

renew报错:

Automated renewal failed:

… …

Could not find a version that satisfies the requirement certbot==0.24.0 (from -r /tmp/tmp.GY8lPazOus/letsencrypt-auto-requirements.txt (line 206)) (from versions: 0.6.0, 0.7.0, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.11.1, 0.12.0, 0.13.0, 0.14.0, 0.14.1, 0.14.2, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.18.1, 0.18.2, 0.19.0, 0.20.0, 0.21.0, 0.21.1, 0.22.0, 0.22.1, 0.22.2, 0.23.0)

No matching distribution found for certbot==0.24.0 (from -r /tmp/tmp.GY8lPazOus/letsencrypt-auto-requirements.txt (line 206))

Had a problem while installing Python packages.

以上便是letsencrypt自动更新报错的一种情况,版本依赖出了问题。面对这种情况,可以直接删除更新后的letsencrypt,然后使用git命令从新获取letsencrypt,并且将其回退至一个较旧的版本,例如ce4e00569e6d8ed3d51c5a078d4281bec5f8e5f0版本。之后再执行letsencrypt时,带上--no-self-upgrade参数,关闭自动更新就可以了。

命令:

rm -rf letsencrypt
git clone https://github.com/letsencrypt/letsencrypt/
cd letsencrypt
git reset --hard ce4e00569e6d8ed3d51c5a078d4281bec5f8e5f0
./letsencrypt-auto --no-self-upgrade renew

webroot or standalone?

这里引出的另一个问题是,webroot和standalone两种证书获取方式,那种更好?我的经验是,推荐webroot。

一来webroot操作可以在webserver运行期间执行,证书获取后再重启webserver即可,对webserver的影响最小;而在使用standalone获取证书时,必须先关闭webserver,如果证书获取时间过长,或者证书获取过程中出现错误需要处理,这期间webserver长时间无法对外服务,会对业务造成影响。

二则是在实际操作中,webroot方式更加稳定,而standalone方式常常有执行过程中卡住的情况。

第三,当站点启用了CDN后,域名的ip解析地址将不再是服务器所在地址,standalone模式会受到影响,无法获取证书,而webroot模式依然能够正常工作。

热门 Linux 7 重置root密码

时间:2022-3-11   作者:TLYAN   分类: 学习分享   热度:1168°    
时间:2022-3-11   分类: 学习分享    热度:1168  

在运维工作中经常会遇到不知道密码,密码遗忘,密码被他人修改过的情况,使用这种方式扫清你一切烦恼!

1、启动Linux系统,在出现引导界面时,按“e”键,进入内核编辑界面;
2、找到有“linux16”的这段参数,在此段末尾输入“rd.break”;
3、然后按“Ctrl+X”组合键进入紧急救援模式;
4、出现命令行提示符后,输入以下命令
mount -o remount,rw /sysroot
chroot /sysroot
passwd (输入新密码)
touch /.autorelabel
exit
exit
5、等待系统重启,进入系统后即可使用刚刚设置的root密码了

注:

passwd
也可以替换成

echo "新密码" | passwd --stdin root
这种方式对输入的密码看起来更加直白,防止输错,当然如果你身后站了一堆心怀不轨的家伙,你又不想让他们知道密码,请不要使用这种显式修改密码的方式!

热门 centos7 中samba 开机启动命令

时间:2022-1-24   作者:TLYAN   分类: 学习分享   热度:2131°    
时间:2022-1-24   分类: 学习分享    热度:2131  

1.设置虚拟机centos7的ip
    修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0(eth0,第一块网卡,如果是第二块则为eth1),保证主机虚拟机互相ping通
2.安装samba
    yum -y install samba samba-client samba-common
    命令rpm -qa | grep samba 查看已经安装的samba相关软件
3.创建用户
    添加用户 
    useradd xxx (userdel删除用户  usermod修改用户组 id xxx查看用户组情况 )
    添加samba密码
    smbpasswd -a xxx
4.创建共享文件夹
    mkdir -p /xxx
   修改文件夹权限
   chgrp xxx /xxx
   chown xxx /xxx
   chmod 770 /xxx
   (ls /xxx -l 查看文件夹权限)
5.修改samba配置文件
    备份原配置文件
   mv smb.conf smb.conf.bak 
   修改配置文件
   vi smb.conf
   清空并修改smb.conf内容
   [global]
        workgroup = WORKGROUP
        netbios name = xxx
        server string = Samba Server
        security = user
        map to guest = Bad Uesr
   [xxx]
        path = /xxx
        writable = yes
        browseable = yes
        guest ok = yes
        write list = @xxx
        validusers = @xxx
6.重启samba服务
    systemctl restart smb 
    systemctl reload smb
    systemctl status smb
7.关闭防火墙和SELinux
    关闭防火墙
    systemctl stop fitewalld
    systemctl disable firewalld
    关闭SELinux
    vi /etc/selinux/config 修改 SELINUX=disabled
8.设置开机启动samba
    chkconfig smb on

9 /etc/passwd的权限应该为644。

 

修改完后reboot重启

热门 充满人情的....................

时间:2021-12-14   作者:TLYAN   分类: 说说   热度:1347°    
时间:2021-12-14   分类: 说说    热度:1347  

      文化不够,标题来凑!今天发个说说,主要是前不久去一家公司那到了一幕......................

      其实本来是想放最后面的,但是想想各位看的人一团火我就先说事再闲聊。


     前不久我去一个工厂(我以什么身份去的你们就慢慢猜了),工厂在沙井和松岗交界等下自己去百度。公司主要是做塑胶类,比如产品外壳,产品胶套等,我来揭秘下公司名字简称(兆百川),全名哈哈自己百度吧!在这里发文章的不是纯碎是为了打广告(而且我也没必要为别人打广告)。

      前不久我作为一个神秘嘉宾到他们工厂去进行一项活动,我刚去没什么专注的事情,我就在里面这里转转,那里转转,看看别人是怎么工作的,机器怎么工作的,正在我在一台机器前面看一个员工操作的时候,突然那个员工比较激动的向我描述着什么,我莫名奇妙,不过幸好这么机智的我看着别人指了指我面前,我低头一看,我去,我面前的工作台上居然有一件神秘武器.....................................................热风枪,热风枪就算了,还是正在工作的...........发挥下你的想象力??????????????很荣幸的告诉你们,虽然热风枪在我面前,但是我没事,在这员工提醒我后,我连忙表示感谢,后就去找人了,他们领导就在旁边,我去找到她,她和我说,那个员工是不能说话的.............在我得知这个消息前,我还以为是这个员工比较腼腆,不太好意思和我说话;而我知道后我居然惊奇的发现原来这里居然有个不能说话的特殊人,在这一瞬间,我突然觉得这社会充满了人情味,在我出来和平时这么多年,第一次发现工厂或者一般的工作地方有特殊人群存在,可能是我孤陋寡闻吧!从员工上看我觉的这老板很富有同情心,给着别人机会。我就在这里发表下感慨。我觉的这样的老板不多,也有可能是我见识比较短,我再这里也就想说,有类似需要给这老板一个机会下点订单。

   

     古往今来,所有事物有好的一面,可能也存在不好的一面,主要是我们怎么去看待这个事情。比如说我有个亲戚,自小就很聪明,学习也好,可惜在他读了几年书后,查出来一种病(具体忘记了),走路有点飘,而我这走路不飘的,学习就飘了;而不管是因为何种原因导致的缺陷,我们不因区嘲笑别人,而是尽自己所力帮助他人,当然就算我们不帮别人也不要去嘲笑别人,让我们社会充满爱。


      现在社会发达了,正常情况下是有一定的赚钱的门路了,现在比较现实的就是互联网,在我们可以考虑到的一些行业,比如不能说话的,我们可以做網絡客服,只需要在后台大字接待,听不见的,可以網絡主播,或者網絡客服也行,等等,像现在很多特殊人群周末就在 龙华公园进行才艺表演,所以在现在的互联网社会我们能做的很多,就看我们自己有没有这个自信,或者说这个条件。


   其实我有时候再想这些有点缺陷的人在小时后可能会受到别人的嘲笑,而至少在受到嘲笑的时候生活还是有家里人能够保证的,但是长大以后怎么办?家里人养一辈子吗?后来慢慢的长大接触多了,听说了盲人按摩,聋哑人餐厅后觉得都有机会了,但是感觉上机会是沧海一粟,至少我见过那么多公司,这个就是我第一次看到,或者说注意到吧。我觉的有时候我们在招人这块的时候在相对岗位上没有特殊要求时,我们也可以考虑到一些有特殊人员,让我们给他们多一个机会。


        到这里基本结束了,文笔不好,因为种种原因我就不单独修饰文章了,对我们满意可以点个赞,对我们文章不满意也来给我们点个赞,有相关文章类,你也来发表下吧,其实,很多时候我就发表下自己的看法和感慨,语句啊什么的我就不一定考虑了,毕竟我觉的这里花费的时间不会太长。。。。。。。将就看吧.............................................


   天生我才必有用

   不要自暴自弃

   相信自己是最棒的!!!!

(我差点就信了,但是心灵的鸡汤还是要给别人灌输的)

到了这里我就气。。。。。。。。。。。。。开始打完了,结果没保存,我又写了一个小时

热门 centos7下搭建rsync+inotify实现单向数据实时同步

时间:2021-11-9   作者:TLYAN   分类: 学习分享   热度:1580°    
时间:2021-11-9   分类: 学习分享    热度:1580  

       测试环境,centos7

      分别ip为server1:192.168.0.5

                    server2:192.168.0.6

     需求:把server1的/home目录下全部同步到server2的/home目录。

     注意,先要确定在server1和server2上有这两个文件夹。

yum update -y
yum -y install epel*
yum install -y groupinstall pcre-devel zlib-devel gcc gcc-c++ autoconf automake make pcre-devel zlib-devel
yum -y install pcre-devel ctags-etags openssl openssl-devel
yum install lz4* libzstd* xx* net-tools -y

在server2上增加防火墙873端口

firewall-cmd --add-port=873/tcp --permanent
firewall-cmd --reload

分别在两台服务器上下载安装rsync最新版,你可以去rsync官网下载,解压后并安装

(可能需要安装wget yum -y install wget)

wget https://download.samba.org/pub/rsync/src/rsync-3.2.3.tar.gz

tar zxvf rsync-3.2.3.tar.gz cd rsync-3.2.3 ./configure make&&make install
1.先配置server2也就是192.168.0.6的目标服务器(新服务器)
创建rsync配置文件
vi /etc/rsyncd.conf
复制左边的代码文件
log file =/var/log/rloshubd.log
pidfile =/var/run/rloshubd.pid
lock file =/var/run/rloshub.lock
secretsfile = /etc/rsync.pass
motd file =/etc/rloshubd.Motd
[tlyan]
path = /home/
comment = tlyan
uid = root
gid = root
port=873
use chroot= no
read only =no
list = no
maxconnections = 200
timeout =600
auth users= tlyan
hosts allow= 192.168.0.5
hosts deny= 192.168.0.2

log file 日志文件位置,启动rsync后自动产生这个文件,无需提前创建

pidfile pid文件的存放位置

lock file 支持max connections参数的锁文件

secretsfile 用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件

motd file rsync启动时欢迎信息页面文件位置(文件内容自定义)

[loshub] #自定义名称

path rsync服务端数据目录路径

comment 模块名称与[md]自定义名称相同

uid 设置rsync运行权限为root

gid 设置rsync运行权限为root

port 默认端口

use chroot 默认为true,修改为no,增加对目录文件软连接的备份

read only  设置rsync服务端文件为读写权限

list 不显示rsync服务端资源列表

maxconnections 最大连接数

timeout 设置超时时间

auth users =认证用户,没用就是匿名

hosts allow 允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

hosts deny 禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

保存并退出后,创建用户名为tlyan用户密码为tlyan的认证文件,

     或者:保存并退出后,创建用户名为tlyan用户密码为Beck的认证文件,

echo 'tlyan:tlyan ' >>/etc/rsync.pass




echo 'tlyan:Beck ' >>/etc/rsync.pass

设置权限

chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsync.pass
启动rsnc
rsync --daemon --config=/etc/rsyncd.conf
加入开机启动
echo "rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local
tail -1 /etc/rc.local
chmod +x /etc/rc.local
查看有无运行
ps -ef|grep rsync
成功以下
root       1528      1  0 13:57 ?        00:00:00 rsync --daemon --config=/etc/rsyncd.conf
root       1559   1481  0 14:01 pts/0    00:00:00 grep --color=auto rsync
2.配置源服务器也就是server1,192.168.0.5
配置rsnc文件
vi /etc/reyncd.conf
输入以下代码
log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
motd file = /etc/rsyncd.Motd
[loshub]
comment = loshub
uid = root
gid = root
port=873
保存并退出后,创建密码文件 


echo 'tlyan ' >>/etc/passwd.txt




echo 'Beck' >>/etc/passwd.txt


保存并退出,并给权限

chmod 600 /etc/passwd.txt

在server1上的/home目录里创建一个tlyan.txt文件并给权限

echo 'aaaaa ' >>/home/tlyan.txt
chown -R nobody:nobody /home/tlyan.txt

现在可以测试了

rsync -avH --port=873 --progress --delete -o -g /home/ tlyan@192.168.0.6::tlyan --password-file=/etc/passwd.txt

rsync -avH --port=873 --progress --delete -o -g /home/ tlyan@192.168.0.6::Beck --password-file=/etc/passwd.txt




现在到server2的/home/web目录里查看有没有tlyan.txt的文件

cd /home
ll

显示

-rw-r--r--. 1 nobody nobody 5 Sep  4 13:57 tlyan.txt



后面的就不关键了。。。。。。。



yum install git libtool* -y
cd /root
git clone  https://github.com/inotify-tools/inotify-tools.git
cd inotify-tools
sh autogen.sh
./configure
make&&make install

创建监控脚本

mkdir -p /inotify
vi /inotify/keep.sh

#1输入以下代码,这个代码每次都是全备份,建议使用#2

#!/bin/bash
inotifywait -mrq --timefmt '%Y/%m/%d %H:%M' --format '%T %e %w%f' -e create,attrib,modify,moved_to,close_write,delete,move  /home/web/ |while read file
do
rsync -avH --port=873 --progress --delete -o -g /home/web/ loshub@192.168.0.6::loshub --password-file=/etc/passwd.txt
done

#2,此源码来源于网络的(广州小朱)对于小文件优化的更好

#!/bin/bash
src=/home/web/                           # 需要同步的源路径
des=loshub                             # 目标服务器上 rsync --daemon 发布的名称,rsync --daemon这里就不做介绍了,网上搜一下,比较简单。
rsync_passwd_file=/etc/passwd.txt          # rsync验证的密码文件
host1=192.168.0.6                 # 目标服务器1
user=loshub                            # rsync --daemon定义的验证用户名
cd ${src}                              # 此方法中,由于rsync同步的特性,这里必须要先cd到源目录,inotify再监听 ./ 才能rsync同步后目录结构一致,有兴趣的同学可以进行各种尝试观看其效果
inotifywait -mrq --format  '%Xe %w%f' -e modify,create,delete,attrib,close_write,move ./ | while read file         # 把监控到有发生更改的"文件路径列表"循环
do
        INO_EVENT=$(echo $file | awk '{print $1}')      # 把inotify输出切割 把事件类型部分赋值给INO_EVENT
        INO_FILE=$(echo $file | awk '{print $2}')       # 把inotify输出切割 把文件路径部分赋值给INO_FILE
        echo "-------------------------------$(date)------------------------------------"
        echo $file
        #增加、修改、写入完成、移动进事件
        #增、改放在同一个判断,因为他们都肯定是针对文件的操作,即使是新建目录,要同步的也只是一个空目录,不会影响速度。
        if [[ $INO_EVENT =~ 'CREATE' ]] || [[ $INO_EVENT =~ 'MODIFY' ]] || [[ $INO_EVENT =~ 'CLOSE_WRITE' ]] || [[ $INO_EVENT =~ 'MOVED_TO' ]]         # 判断事件类型
        then
                echo 'CREATE or MODIFY or CLOSE_WRITE or MOVED_TO'
                rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des}
                 #仔细看 上面的rsync同步命令 源是用了$(dirname ${INO_FILE})变量 即每次只针对性的同步发生改变的文件的目录(只同步目标文件的方法在生产环境的某些极端环境下会漏文件 现在可以在不漏文件下也有不错的速度 做到平衡) 然后用-R参数把源的目录结构递归到目标后面 保证目录结构一致性
        fi
        #删除、移动出事件
        if [[ $INO_EVENT =~ 'DELETE' ]] || [[ $INO_EVENT =~ 'MOVED_FROM' ]]
        then
                echo 'DELETE or MOVED_FROM'
                rsync -avzR --delete --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des} 
                #看rsync命令 如果直接同步已删除的路径${INO_FILE}会报no such or directory错误 所以这里同步的源是被删文件或目录的上一级路径,并加上--delete来删除目标上有而源中没有的文件,这里不能做到指定文件删除,如果删除的路径越靠近根,则同步的目录月多,同步删除的操作就越花时间。这里有更好方法的同学,欢迎交流。
        fi
        #修改属性事件 指 touch chgrp chmod chown等操作
        if [[ $INO_EVENT =~ 'ATTRIB' ]]
        then
                echo 'ATTRIB'
                if [ ! -d "$INO_FILE" ]                 # 如果修改属性的是目录 则不同步,因为同步目录会发生递归扫描,等此目录下的文件发生同步时,rsync会顺带更新此目录。
                then
                        rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des} 
                fi
        fi
done

如果需要有多个同步,使用#3此源码来源于网络的(广州小朱)对于小文件优化的更好

#!/bin/bash
src=/home/web/                           # 需要同步的源路径
des=loshub                            # 目标服务器上 rsync --daemon 发布的名称,rsync --daemon这里就不做介绍了,网上搜一下,比较简单。
rsync_passwd_file=/etc/rsyncd.passwd            # rsync验证的密码文件
host1=192.168.0.11                 # 目标服务器1
host2=192.168.0.12                 # 目标服务器2
user=loshub                            # rsync --daemon定义的验证用户名
cd ${src}                              # 此方法中,由于rsync同步的特性,这里必须要先cd到源目录,inotify再监听 ./ 才能rsync同步后目录结构一致,有兴趣的同学可以进行各种尝试观看其效果
inotifywait -mrq --format  '%Xe %w%f' -e modify,create,delete,attrib,close_write,move ./ | while read file         # 把监控到有发生更改的"文件路径列表"循环
do
        INO_EVENT=$(echo $file | awk '{print $1}')      # 把inotify输出切割 把事件类型部分赋值给INO_EVENT
        INO_FILE=$(echo $file | awk '{print $2}')       # 把inotify输出切割 把文件路径部分赋值给INO_FILE
        echo "-------------------------------$(date)------------------------------------"
        echo $file
        #增加、修改、写入完成、移动进事件
        #增、改放在同一个判断,因为他们都肯定是针对文件的操作,即使是新建目录,要同步的也只是一个空目录,不会影响速度。
        if [[ $INO_EVENT =~ 'CREATE' ]] || [[ $INO_EVENT =~ 'MODIFY' ]] || [[ $INO_EVENT =~ 'CLOSE_WRITE' ]] || [[ $INO_EVENT =~ 'MOVED_TO' ]]         # 判断事件类型
        then
                echo 'CREATE or MODIFY or CLOSE_WRITE or MOVED_TO'
                rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des} &&         # INO_FILE变量代表路径哦  -c校验文件内容
                rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host2}::${des}
                 #仔细看 上面的rsync同步命令 源是用了$(dirname ${INO_FILE})变量 即每次只针对性的同步发生改变的文件的目录(只同步目标文件的方法在生产环境的某些极端环境下会漏文件 现在可以在不漏文件下也有不错的速度 做到平衡) 然后用-R参数把源的目录结构递归到目标后面 保证目录结构一致性
        fi
        #删除、移动出事件
        if [[ $INO_EVENT =~ 'DELETE' ]] || [[ $INO_EVENT =~ 'MOVED_FROM' ]]
        then
                echo 'DELETE or MOVED_FROM'
                rsync -avzR --delete --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des} &&
                rsync -avzR --delete --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host2}::${des}
                #看rsync命令 如果直接同步已删除的路径${INO_FILE}会报no such or directory错误 所以这里同步的源是被删文件或目录的上一级路径,并加上--delete来删除目标上有而源中没有的文件,这里不能做到指定文件删除,如果删除的路径越靠近根,则同步的目录月多,同步删除的操作就越花时间。这里有更好方法的同学,欢迎交流。
        fi
        #修改属性事件 指 touch chgrp chmod chown等操作
        if [[ $INO_EVENT =~ 'ATTRIB' ]]
        then
                echo 'ATTRIB'
                if [ ! -d "$INO_FILE" ]                 # 如果修改属性的是目录 则不同步,因为同步目录会发生递归扫描,等此目录下的文件发生同步时,rsync会顺带更新此目录。
                then
                        rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host1}::${des} &&            
                        rsync -avzcR --password-file=${rsync_passwd_file} $(dirname ${INO_FILE}) ${user}@${host2}::${des}
                fi
        fi
done

给权

chmod 755 /inotify/keep.sh

这时可以放入后台进行测试

/inotify/keep.sh &

加入开机启动

echo "/inotify/keep.sh &" >>/etc/rc.local
tail -1 /etc/rc.local
chmod +x /etc/rc.local

重启进行测试。完成

热门 KVM 镜像制作-Windows

时间:2021-10-23   作者:TLYAN   分类: 学习分享   热度:2663°    
时间:2021-10-23   分类: 学习分享    热度:2663  

一、新版本的开机启动脚本方式

支持范围:Windows 2008及以上


实现方式:通过开机启动项调用魔方云拷贝进系统的脚步完成

镜像制作第一步:

  • 当类型为Windows

1.下载对应的ISO,放置(可以使用链接:http://xiazai.wdyun.vip)

    /home/kvm/images

2.下载KVM驱动(virtio-win-0.1.141.iso),放置  (可以使用链接:http://xiazai.wdyun.vip)

    /home/kvm/images

3.分软件方:

   魔方云:魔方云主控→ISO管理→添加ISO


  QQ截图20211023164806.png

 QQ截图20211023165420.png

 4.开始挂载安装:

    开一个小鸡,,然后关机,不然设置会报错。然后设置:

        第一个图我们选择启动路径盘:

     QQ截图20211023165630.png

     下图选择我们刚刚命名的:名称我这里是win2008,

QQ截图20211023165650.png

   下面我们挂载驱动,我名称设置成:virtio

QQ截图20211023165702.png

   第四步截图:

   QQ截图20211023170034.png

    教程这里是做做2019R2镜像所以这里ISO是2019R2

5.  开机,然后马上进入上面的控制台,然后点下页面中间的显示屏,一直按空格或者其它按键,不然进入不到界面。

    不带图了。

6.在选择硬盘的时候会出现空白不识别硬盘。

    选择加载驱动,然后界面上会显示

       一个CD盘  系统(2019R2)

       一个XX盘显示VI....0.1.0(驱动盘)

     然后进入,有很多列表选择最后一个。

       进去后有很多系统版本比如2K8R2  我们做2008r2就选2K8R2 再选下一级 进入一个amd,然后下一一步在下。

  出现了硬盘就按正常操作安装系统。


1.安装agent(点击下载)



下载地址:
32位系统使用:http://mirror.cloud.idcsmart.com/cloud/software/qemu-ga-i386.msi
64位系统使用:http://mirror.cloud.idcsmart.com/cloud/software/qemu-ga-x86_64.msi


2. Balloon.zip下载(点击下载) 


http://mirror.cloud.idcsmart.com/cloud/software/Balloon.zip


3.设定开机脚本


(1)打开CMD,以管理员运行以下命令:


echo call C:\config.bat> C:\Windows\System32\start.bat

echo call del C:\config.bat>> C:\Windows\System32\start.bat


(2)【开始菜单】-【运行】输入命令 gpedit.msc 打开组策略编辑器

①计算机配置=>Windows设置=>脚本(启动/关机)=>启动
②添加=>脚本名称 C:\windows\system32\start.bat

③将Balloon文件夹里面的对应系统的exe放在C:\Program Files\Balloon里

④运行cmd 进入C:\Program Files\Balloon,执行xxx.exe -i     XXX是指Balloon里的exe文件

⑤然后添加Balloon的开机启动任务


  • 当类型为Linux


无需任何设置


制作第二步:


完成以上设置后,魔方云即可使用镜像实现初始化IP/密码配置和功能管理


请随后清理系统内的日志/痕迹后关机

制作第三步:


将qcow2文件拷贝至镜像存储目录(/home/kvm/images/

制作第四步:


前往魔方云添加镜像

热门 linux命令解压压缩rar文件的详细步骤

时间:2021-10-13   作者:TLYAN   分类: 学习分享   热度:2019°    
时间:2021-10-13   分类: 学习分享    热度:2019  

一.widonds下打包rar文件并上传

yum install lrzsz 
rz test.rar

二、下载并安装rar软件

2.1 下载

mkdir -p  /home/oldboy/tools
cd /home/oldboy/tools 

wget https://www.rarlab.com/rar/rarlinux-x64-6.1.b1.tar.gz

(最新的可以在这里看:https://www.rarlab.com/download.htm)

2.2 安装

tar zxvf rarlinux-x64-6.1.b1.tar.gz cd rar
make
make install 

三、rar命令语法

将/etc 目录压缩为etc.rar 命令为:

rar a etc.rar /etc

将etc.rar 解压 命令为:

rar x etc.rar 
unrar -e etc.tar

四、具体例子

实例:将/etc 目录压缩为etc.rar

[root@yonggetools]# rar a etc.rar /etc RAR 3.80 Copyright (c) 1993-2008 Alexander Roshal 16 Sep 2008 Shareware version         Type RAR -? for help
Evaluation copy. Please register.
Creating archive etc.rar
Adding    /etc/gdm/securitytokens.conf                                OK 
Adding    /etc/gdm/Init/Default OK 
Adding    /etc/gdm/custom.conf                                        OK 
Adding    /etc/gdm/Xsession                                           OK 
Adding    /etc/gdm/PostSession/Default OK 
Adding    /etc/gdm/PreSession/Default OK 
Adding    /etc/gdm/XKeepsCrashing                                     OK 
Adding    /etc/gdm/locale.alias OK 
Adding    /etc/gdm/PostLogin/Default.sample                           OK 
省略若干行......
查看
[root@yonggetools]# ll 总计 26704 -rw-r--r-- 1 root root 26505645 08-20 20:26 etc.rar

将etc.rar 解压:

[root@yonggetools]# rar x etc.rar RAR 3.80 Copyright (c) 1993-2008 Alexander Roshal 16 Sep 2008 Shareware version         Type RAR -? for help

Extracting from etc.rar
Creating    etc                                                       OK
Creating    etc/gdm                                                   OK
Extracting  etc/gdm/securitytokens.conf                               OK 
Creating    etc/gdm/Init                                              OK
Extracting  etc/gdm/Init/Default OK 
Extracting  etc/gdm/custom.conf                                       OK 
Extracting  etc/gdm/Xsession                                          OK 
Creating    etc/gdm/PostSession                                       OK
Extracting  etc/gdm/PostSession/Default OK
省略若干行......

 

五 更多命令 查看帮助

 [root@yonggerar]# rar
RAR 3.80 Copyright (c) 1993-2008 Alexander Roshal 16 Sep 2008 Shareware version Type RAR -? for help
Usage:     rar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>
<Commands>
  a             Add files to archive
  c             Add archive comment
  cf            Add files comment
  ch            Change archive parameters
  cw            Write archive comment to file d             Delete files from archive
  e             Extract files to current directory
  f             Freshen files in archive
  i[par]=<str>  Find string in archives
  k             Lock archive
  l[t,b]        List archive [technical, bare]
  m[f]          Move to archive [files only]
  p             Print file to stdout
  r             Repair archive
  rc            Reconstruct missing volumes
  rn            Rename archived files
  rr[N]         Add data recovery record rv[N]         Create recovery volumes
  s[name|-]     Convert archive to or from SFX
  t             Test archive files
  u             Update files in archive
  v[t,b]        Verbosely list archive [technical,bare]
  x             Extract files with full path
<Switches>
  -             Stop switches scanning
  ad            Append archive name to destination path
  ag[format] Generate archive name using the current date
  ap<path>      Set path inside archive as            Synchronize archive contents
  av            Put authenticity verification (registered versions only)
  av-           Disable authenticity verification check
  c-            Disable comments show
  cfg-          Disable read configuration cl            Convert names to lower case cu            Convert names to upper case df            Delete files after archiving
  dh Open shared files
  ds            Disable name sort for solid archive
  dw            Wipe files after archiving
  e[+]<attr>    Set file exclude and include attributes
  ed            Do not add empty directories
  en            Do not put 'end of archive' block ep            Exclude paths from names
  ep1           Exclude base directory from names
  ep3           Expand paths to full including the drive letter
  f             Freshen files
  hp[password]  Encrypt both file data and headers id[c,d,p,q]   Disable messages
  ierr          Send all messages to stderr
  ilog[name]    Log errors to file (registered versions only)
  inul          Disable all messages
  isnd          Enable sound
  k             Lock archive
  kb            Keep broken extracted files
  m<0..5>       Set compression level (0-store...3-default...5-maximal)
  mc<par>       Set advanced compression parameters
  md<size>      Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
  ms[ext;ext]   Specify file types to store
  n<file>       Include only specified file n@            Read file names to include from stdin
  n@<list>      Include files in specified list file o[+|-]        Set the overwrite mode
  ol            Save symbolic links as the link instead of the file or Rename files automatically
  ow            Save or restore file owner and group p[password]   Set password
  p-            Do not query password
  r             Recurse subdirectories
  r0            Recurse subdirectories for wildcard names only
  rr[N]         Add data recovery record rv[N]         Create recovery volumes
  s[<N>,v[-],e] Create solid archive
  s-            Disable solid archiving
  sc<chr>[obj]  Specify the character set
  sfx[name]     Create SFX archive
  si[name]      Read data from standard input (stdin)
  sl<size> Process files with size less than specified
  sm<size> Process files with size more than specified
  t             Test files after archiving
  ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
  tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
  tk            Keep original archive time tl            Set archive time to latest file tn<time> Process files newer than <time> to<time> Process files older than <time>
  ts<m,c,a>[N]  Save or restore file time (modification, creation, access)
  u             Update files
  v             Create volumes with size autodetection or list all volumes
  v<size>[k,b]  Create volumes with size=<size>*1000 [*1024, *1]
  ver[n] File version control
  vn Use the old style volume naming scheme
  vp            Pause before each volume
  w<path>       Assign work directory
  x<file>       Exclude specified file x@            Read file names to exclude from stdin
  x@<list>      Exclude files in specified list file y Assume Yes on all queries
  z[file]       Read archive comment from file [root@ha-1-1 rar]# unrar          
UNRAR 3.80 freeware      Copyright (c) 1993-2008 Alexander Roshal
Usage:     unrar <command> -<switch 1> -<switch N> <archive> <files...>
               <@listfiles...> <path_to_extract\>
<Commands>
  e             Extract files to current directory
  l[t,b]        List archive [technical, bare]
  p             Print file to stdout
  t             Test archive files
  v[t,b]        Verbosely list archive [technical,bare]
  x             Extract files with full path
<Switches>
  -             Stop switches scanning
  ad            Append archive name to destination path
  ap<path>      Set path inside archive
  av-           Disable authenticity verification check
  c-            Disable comments show
  cfg-          Disable read configuration cl            Convert names to lower case cu            Convert names to upper case dh Open shared files
  ep            Exclude paths from names
  ep3           Expand paths to full including the drive letter
  f             Freshen files id[c,d,p,q]   Disable messages
  ierr          Send all messages to stderr
  inul          Disable all messages
  kb            Keep broken extracted files
  n<file>       Include only specified file n@            Read file names to include from stdin
  n@<list>      Include files in specified list file o[+|-]        Set the overwrite mode or Rename files automatically
  ow            Save or restore file owner and group p[password]   Set password
  p-            Do not query password
  r             Recurse subdirectories
  sl<size> Process files with size less than specified
  sm<size> Process files with size more than specified
  ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
  tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
  tn<time> Process files newer than <time> to<time> Process files older than <time>
  ts<m,c,a>[N]  Save or restore file time (modification, creation, access)
  u             Update files
  v             List all volumes
  ver[n] File version control
  vp            Pause before each volume
  x<file>       Exclude specified file x@            Read file names to exclude from stdin
  x@<list>      Exclude files in specified list file y Assume Yes on all queries

热门 Mysql Table doesn't exist问题解决

时间:2021-7-26   作者:TLYAN   分类: 学习分享   热度:6144°    
时间:2021-7-26   分类: 学习分享    热度:6144  

程序连接Mysql的时候总是提示表不存在,Table 'xx.QRTZ_LOCKS' doesn't exist



查询了下,数据库明明是有这个表的,搞了许久,



网上据说是因为数据库对表的大小写设置问题,设置忽略大小写即可,



修改mysql数据库配置:



在服务运行目录找到my.ini或者my.cnf文件

打开文件,找到[mysqld]在下面增加一行



lower_case_table_names=1 (0:大小写敏感;1:大小写不敏感)



重启MySQL服务


热门 MySQL解决修复表时提示 “The storage engine for the table doesn't support repair“问题

时间:2021-7-26   作者:TLYAN   分类: 学习分享   热度:2685°    
时间:2021-7-26   分类: 学习分享    热度:2685  

遇到的问题, 如下图:



        



“ The storage engine for the table doesn't support repair “的意思是:“该表的存储引擎不支持修复”,通过表设计查看,可以看到该表的引擎是InnoDB。



 InnoDB支持外键参照完整性,具备故障恢复能力,所以不需要修复!



解决方案:

1、从数据库设计上来讲,是不需要修复这个表的。



2、如果完美主义者的你,非要修复的话,可以将引擎更改为:MyISAM,如下:







保存后,重新修复该表 ,已经提示ok了!




热门 使用单IP转发后如何修改节点IP(简智魔方)

时间:2021-7-15   作者:TLYAN   分类: 学习分享   热度:2412°    
时间:2021-7-15   分类: 学习分享    热度:2412  
修改节点IP会影响两个地方:
①节点需要重启
②实例会短暂断网

请按以下三个步骤进行IP变更
注意:请确保目标IP能与主控互相访问

1. 在节点内页修改IP
在【区域管理-【节点管理点击修改节点,将IP修改为目标IP

2. SSH连接节点执行以下命令后,修改为目标IP
  1. vi /usr/local/zjmf/conf/net.conf
复制代码


3.重启成功后,可在节点中检查连接状态 绿色代表成功,若是红色鼠标放上去可看到具体报错信息

热门 7X升级系统内核(6X没试过)

时间:2021-6-22   作者:TLYAN   分类: 学习分享   热度:1557°    
时间:2021-6-22   分类: 学习分享    热度:1557  

一般来说,只有从 kernel.org 下载并编译安装的内核才是官方内核。 
大多数 Linux 发行版提供自行维护的内核,可以通过 yum 或 rpm 等包管理系统升级。

1)#导入ELRepo软件仓库的公共秘钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2)#安装ELRepo软件仓库的yum源

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

3)#安装主线内核(ml=mainline)4.14.11

yum --enablerepo=elrepo-kernel install kernel-ml

4)查看系统可用内核,并设置启动项

sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

机器上存在 3个内核,我们要使用(最新的一般是再最上面)这个版本,可以通过 grub2-set-default 0 命令(0是第一个,你用几编号改成几)

生成 grub 配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

 

5)重启系统,并验证

1
uname -a

热门 智简魔方-KVM使用遇到的故障

时间:2021-6-22   作者:TLYAN   分类: 学习分享   热度:2093°    
时间:2021-6-22   分类: 学习分享    热度:2093  

第一:安装好了以后,控制面板下载镜像超时/无法下载,手动下载识别不到。

      官方回复:重新安装节点。

第二:安装好了连接没问题了,安装系统报错UUID****等;

     官方回复(并测试):升级节点内核(附教程http://www.tlyan.com/post-78.html)


热门 centos6.x忘记root密码解决方法

时间:2021-6-22   作者:TLYAN   分类: 学习分享   热度:1348°    
时间:2021-6-22   分类: 学习分享    热度:1348  

一步:启动系统时,在进入系统前,读秒的时候,按任意键出现这个界面,然后按e键 进入到下面界面



第二步:选择kernel选项,再按e 进入到下面界面



第三步:在quiet后面加上single参数或是加1(数字1),然后按回车,回到下面的界面



第四步:按b键启动系统,进入到下面界面



第五步:在此界面可以直接用passwd修改密码,如以下界面



第六步:输入两次密码,重启系统即可完成密码的重置



————————————————

版权声明:本文为CSDN博主「linux凯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://*blog.csdn.net/chenghuikai/article/details/45218875

热门 linux Screen使用

时间:2021-6-22   作者:TLYAN   分类: 学习分享   热度:1584°    
时间:2021-6-22   分类: 学习分享    热度:1584  

其实这个主要的作用就是我们在下载或者同步安装程序软件文件时怕断网或者关闭电脑时需要用到、


  首先安装:

  1.yum -y install screen

  2.我们新建一个窗口 执行screen -S yourname (换成中文理解时新建一个yourname的新窗口 建议名字更换成其它名字)

  3.这时我们就需要输入我们的命令进行执行了,执行后我们可以新打开一个SSH连接器连接linux您会发现您没看到您操作的东西了,这时我们需要执行下下一个命令。

    screen -r yourname

   这样您就可以看到 A连接器(最开始设置的),B连接器(刚刚您新开),2个界面同时现实您的工作,这时您就可以关闭电脑了或者2哥连接器都可以关闭了。

 4.如果需要同时处理几个界面我们可以建立多个 screen。

      比如screen -S data1   回到这个窗口 creen -r data1

             screen -S data2   回到这个窗口 creen -r data2

      等等,这种建立一般都要新开一个SSH建立或者您断开老的在建立。

5.如果您建立了多个窗口您忘记了可以用screen -ls 看看有哪些窗口。

6.正常来说我们只需要用到以上命令就够了,下面命令提供参考。

screen -S yourname -> 新建一个叫yourname的session,

screen -ls         -> 列出当前所有的session
       screen -r yourname -> 回到yourname这个session
       screen -d yourname -> 远程yourname 某个session
       screen -d -r yourname -> 结束当前session并回到yourname这个sessio

7.这里提出我们遇到异常时处理。

本来正常操作是没问题的,今天上午我手残,回到窗口点成了新建窗口后

 从上图我们有2个同名字的窗口,但是前面的ID不一样,我百度了下,一直无解,后问得大神使用:

26161.yourname (Attached)
      42137.yourname (Attached)

screen -d -r +id 

我用 screen -d -r 26161 回车回到了原来使用的(42137是早上手残整的)

  因此记录下来以备后用。

热门 远程桌面连接 提示 出现了内部错误 (不用重启服务器终于解决了)

时间:2021-2-25   作者:TLYAN   分类: 说说   热度:2439°    
时间:2021-2-25   分类: 说说    热度:2439  

1 打开注册表:regedit

2 找到目录HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters,修改AllowEncryptionOracle的值为2。

 

结果我发现我根本没有CredSSP文件!我的天呢,我电脑里到底还有什么?我已经怀疑电脑的人生了!然后我又百度怎么在注册表里添加文件:右键->新建->项,原来新建【项】就是新建文件夹!

热门 啤酒肚里面装的都是些什么

时间:2021-1-27   作者:TLYAN   分类: 说说   热度:1917°    
时间:2021-1-27   分类: 说说    热度:1917  

啤酒肚常出现在男性身上,是由于年龄增长,男性深睡眠阶段减少,由于睡眠质量差,荷尔蒙的分泌会随之减少,荷尔蒙的缺乏使体内脂肪增加并聚集于腹部造成的,那么啤酒肚对人的身体有什么危害呢,下面一起来看看!

啤酒肚古时又叫做“将军肚”,“罗汉肚”,被认为是富贵、成功男人、政府官员的标志,但现在情况可不是这样了,人们生活越来越好,挺着啤酒肚的人越来越多了,啤酒肚可不再是“福气”了,而是威胁我们健康的一大杀手。

“啤酒肚”医学上称为“腹型肥胖”,那么肚子多大才叫啤酒肚?医学上给出了一个参考标准,男性腹围超过90厘米,女性腹围超过85厘米就达到了啤酒肚的标准,各位可以参考给自己量一下,或者给自己的老公量一下。即使是啤酒肚构成了“腹型肥胖”,也不用太过担心,因为这太常见了,据可靠调查,2012年统计显示30岁以上的男性26%的都存在啤酒肚,超过了四分之一,这可是个不小的数字。有啤酒肚的男人9成有不同程度的脂肪肝,超过一半有心脏病变,三分之一以上有高血脂,五分之一以上患有糖尿病,六成以上有高血压。

大家有没有好奇过,啤酒肚里面都装的什么呢?除了组织液、血液和器官外,基本都是脂肪,高能预警:下方图片可能稍稍引起不适。

那么大家可能又会有疑问了,既然都是脂肪,那为什么肚子那么硬呢?脂肪不是应该很软吗?其实,肚子越硬对健康危害就越大,热量严重过剩,体内脂肪堆积在腹部,引起皮下脂肪过厚,久而久之就会出现“啤酒肚”较别人硬的现象。因此,“啤酒肚”如果很硬,就证明你的脂肪堆积很严重,相比那些软软的大肚子,硬肚子对身体的损害更大。

如何控制啤酒肚?要做到这四点:五少吃、四多吃、多运动,好睡眠。

一、五少吃

1、少吃高热量的食物,比如:巧克力、蛋糕、奶油、罐头

2、少吃油腻的食物,各种炸鸡、烤串等

3、少吃高盐分的食物:饮食尽量清淡,口味太重对心脑血管害处极大,也会造成肥胖

4、少喝碳酸饮料

5、少喝酒:酒这种东西嘛,不喝很困难,但尽量少喝,控制饮酒量,不醉酒不酗酒。

二、多吃四类食物

生活中要多吃这四类食物:鱼肉(鱼肉是最好的肉类蛋白之一,肉质容易吸收,营养价值高、胆固醇含量低)、白开水(白开水才是最好的饮料,O(∩_∩)O哈哈~)、水果、绿色蔬菜。

三、多运动

日本医学专家制定了一套随时随地可做的运动,对消除“啤酒肚”效果很好。一是双手抱肘,两腿并立;二是少乘电梯,步行上楼;三是凡能站着完成的事,最好站着完成,如等人、打电话、看报、穿鞋袜等。站立时稍踮脚尖,使身体处于比较紧张的状态。

听我的!多运动!

四、保持良好睡眠,不熬夜

对于中年人而言,睡眠质量问题是主因。随着年龄的增长,男性深睡眠阶段也随之减少,由于睡眠质量差,荷尔蒙的分泌会随之减少,荷尔蒙的缺乏会使体内脂肪组织增加并聚集于腹部,而且年纪越大影响越明显。

返回顶部    首页    手机版本    后花园   会员注册   
版权所有:小唐博客-唐联艳-我可以告诉你    站长: TLYAN    主题唐联艳  程序:emlog   粤ICP备15003815号     模板赞助寒光唯美式V2.4.1