-
积累经验篇 做运维也快4年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点。 运维工程师 是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化。如:今年大数据,人工智能比较火。。。(相对表示就是 python 比较火) 前面也讲了运维基础篇,发现对很多人收益挺大,接下来也写下关于这4年多的运维实践经验,从事了2年多游戏运维,1年多安全运维,1年大数据运维,相关行业信息不能算非常精通吗,但是熟悉和熟练还是相对可以的。 初级篇 详见:详解Linux运维工程师入门级必备技能拓扑详见: 中级篇从我后面面试经历和面试别人的经历。有些人认为,其实运维就是部署某个软件,设置些基础功能,就算会运维了。举个例子:安装LAMP,LNMP,就感觉部署方法我都掌握了。其实网上大多数都有一键安装脚本啥的根本没有啥技术含量,在面试官眼里,这些都不是你的亮点。基本到了公司一般环境架构都是部署好的,很少需要你去变动环境架构。就算你安装好 LNMP 架构你熟悉里面的原理吗,熟悉 Nginx 优化吗,熟悉 MySQL 优化吗? 再举个例子:我面试遇到的问题,面试官问你既然熟悉 LNMP 架构,那么 Nginx 反向代理的作用。 你应该不是说出懂这个软件和配置,你尽可能的说怎么优化,怎么深入提高网站性能。 1、使用反向代理可以理解为7层应用层的负载均衡,使用负载均衡之后可以非常便捷的横向扩展服务器集群,实现集群整体并发能力、抗压能力的提高。 2、通常反向代理服务器会带有本地 Cache 功能,通过静态资源的 Cache,有效的减少后端服务器所承载的压力,从而提高性能。 下面说说运维在工作中需要掌握的核心技术注意,这是在工作中掌握的,在学习中很难掌握。 1、第一条最主要的排错 ● 分析部分程序不能运行或没有按预想结果运行的原因,对程序运行跟踪,查看系统调用的过程。 ● 较深入的系统瓶颈点分析。 查看剩余内存: 复制内容到剪贴板代码:free -m#-/+ buffers/cache: 6458 1649#6458M为真实使用内存 1649M为真实剩余内存(剩余内存+缓存+缓冲器)#linux会利用所有的剩余内存作为缓存,所以要保证linux运行速度,就需要保证内存的缓存大小 系统信息: 复制内容到剪贴板代码:uname -a # 查看Linux内核版本信息cat /proc/version # 查看内核版本cat /etc/issue # 查看系统版本lsb_release -a # 查看系统版本 需安装 centos-releaselocale -a # 列出所有语系locale # 当前环境变量中所有编码hwclock # 查看时间who # 当前在线用户w # 当前在线用户whoami # 查看当前用户名logname # 查看初始登陆用户名uptime # 查看服务器启动时间sar -n DEV 1 10 # 查看网卡网速流量dmesg # 显示开机信息lsmod # 查看内核模块 硬件信息: 复制内容到剪贴板代码:more /proc/cpuinfo # 查看cpu信息lscpu # 查看cpu信息cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看cpu型号和逻辑核心数getconf LONG_BIT # cpu运行的位数cat /proc/cpuinfo | grep 'physical id' |sort| uniq -c # 物理cpu个数cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l # 结果大于0支持64位cat /proc/cpuinfo|grep flags # 查看cpu是否支持虚拟化 pae支持半虚拟化 IntelVT 支持全虚拟化more /proc/meminfo # 查看内存信息dmidecode # 查看全面硬件信息dmidecode | grep "Product Name" # 查看服务器型号dmidecode | grep -P -A5 "Memory\s+Device" | grep Size | grep -v Range # 查看内存插槽cat /proc/mdstat # 查看软raid信息cat /proc/scsi/scsi # 查看Dell硬raid信息(IBM、HP需要官方检测工具)lspci # 查看硬件信息lspci|grep RAID # 查看是否支持raidlspci -vvv |grep Ethernet # 查看网卡型号lspci -vvv |grep Kernel|grep driver # 查看驱动模块modinfo tg2 # 查看驱动版本(驱动模块)ethtool -i em1 # 查看网卡驱动版本ethtool em1 ●使用分析系统分析web日志。(如逆火软件,)● 分析系统性能瓶颈点(IO/memory/cpu,常用工具,top命令中shift组合键的特殊用Sar/vmstat/iostat/ipcs) 日志管理常用命令: 复制内容到剪贴板代码:history # 历时命令默认1000条HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " # 让history命令显示具体时间history -c # 清除记录命令cat $HOME/.bash_history # 历史命令记录文件lastb -a # 列出登录系统失败的用户相关信息 清空二进制日志记录文件 echo > /var/log/btmp last # 查看登陆过的用户信息 清空二进制日志记录文件 echo > /var/log/wtmp 默认打开乱码who /var/log/wtmp # 查看登陆过的用户信息lastlog # 用户最后登录的时间tail -f /var/log/messages # 系统日志tail -f /var/log/secure # ssh日志 2、优化 优化可以说是运维最吃香的技能,基本会优化的运维普遍工资很高,而且优化是要承担风险的,并不是网上搜个文章改一下配置文件或者参数就叫优化了,这样很容易造成宕机。 优化是根据实际的现场环境硬件各个参数进行部分优化,提高软件性能和网站性能。这个我只能讲半知半解,当时优化mysql和tomcat参数也是根据网上文章和官网文档查找参数在虚拟机上测试然后查看性能。 成本优化,性能优化。这里我给出 tomcat 优化 jvm 参数(做过相应测试才放到现场环境的):(记住无监控不调优) -标准参数,所有jvm都应该支持 -X 非标,每个jvm实现都不同 -XX 不稳定参数,下一版本可能会取消 serial collector 单线程 序列化 parallel collector 多线程 启动 jvisualvm.exe 监控 dump 内存溢出 -Xms:初始堆大小 -Xmx:最大堆大小 -Xss:线程栈大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值,如3, 标示年轻代:年老代比值1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中的eden区与2个Survivor区的比值。 -XX:MaxPermSize=n:设置持久代大小 收集器设置 -XX:+UseSerialGC:设置串行收集器 -XX:+UseParallelGC:设置并行收集器 -XX:+UseConcMarkSweepGC:设置并发收集器 回收统计信息 -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:filename tocmat 优化 确认有几个 jvm 虚拟机 set JAVA_OPTS= -Xms4g -Xmx4g -Xss512k -XX:+AggressiveOpts 进攻型的优化选项,所有优化项都加上 -XX:+UseBiasedLocking 优化锁,基本都要选上,偏执锁 -XX:permSize=64m 原始区大小,最大300m 类多就设置大一点 -XX:MaxPermSize=300m -XX:+DisableExplicitGC //System.gc() 不显示调用gc -XX:+UseConcMarkSweepGC 使用cms缩短相应时间,并发收集,低停顿 -XX:+UseParNewGC 并行收集新生代的垃圾 -XX:+CMSParallelRemarkEnabled 在使用UseParNewGC的情况下,尽量减少mark的时间 -XX:+UseCMSCompactAtFullCollection 使用并发收集器时,开启对年老代的压缩,使碎片减少 -XX:LargePageSizelnBytes=128m 内存分页大小对性能的提升 -XX:+UseFastAccessorMethods get/set方法转成本地代码 -Djava awt headless=true 修复linux下tomcat处理图标时可能产生的bug 内存调优: 复制内容到剪贴板代码:"C:\Program Files\Java\jdk1.8.0_31\bin\java" -XX:+DoEscapeAnalysis -XX:+EliminateAllocations -XX:+UseTLAB -XX:+PrintGCDetails -Didea.launcher.port=7540 "-Didea.launcher.bin.path=E:\java\IntelliJ IDEA 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_31\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\rt.jar;E:\java\new\out\production\new;E:\java\IntelliJ IDEA 2016.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain aa.T02HeapPSYoungGen total 38400K, used 3994K [0x00000000d5d80000, 0x00000000d8800000, 0x0000000100000000) eden space 33280K, 12% used [0x00000000d5d80000,0x00000000d61668b8,0x00000000d7e00000) from space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) to space 5120K, 0% used [0x00000000d7e00000,0x00000000d7e00000,0x00000000d8300000)ParOldGen total 87552K, used 0K [0x0000000081800000, 0x0000000086d80000, 0x00000000d5d80000) object space 87552K, 0% used [0x0000000081800000,0x0000000081800000,0x0000000086d80000)Metaspace used 3072K, capacity 4494K, committed 4864K, reserved 1056768K class space used 329K, capacity 386K, committed 512K, reserved 1048576KHeapPSYoungGen total 38400K, used 1147K [0x00000000d5d80000, 0x00000000d8800000, 0x0000000100000000) eden space 33280K, 3% used [0x00000000d5d80000,0x00000000d5e9ecb8,0x00000000d7e00000) from space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) to space 5120K, 0% used [0x00000000d7e00000,0x00000000d7e00000,0x00000000d8300000)ParOldGen total 87552K, used 0K [0x0000000081800000, 0x0000000086d80000, 0x00000000d5d80000) object space 87552K, 0% used [0x0000000081800000,0x0000000081800000,0x0000000086d80000)Metaspace used 3072K, capacity 4494K, committed 4864K, reserved 1056768K class space used 330K, capacity 386K, committed 512K, reserved 1048576K 线程本地缓存使用eden的,开启就会使用更多 tomcat 前任何参数没参加大概每秒605 调优后大概每秒435 接近3倍的结果 3、开发技能 优选 shell 和 python,现在 shell 无法满足你的需求或者效率很低,那么选择自动化 python 是最好的选择。现在普遍招聘需求要求,会写 shell 或者 python,perl 脚本,个人选择还是选 python。 python 这门语言上手比较快,容易理解。 python 在服务器管理工具上非常丰富,配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理( python-libvirt) 进程管理 (supervisor) 云计算(openstack) ...... 还有大部分系统 C 库都有 python 绑定。 对于流程确定的事情,最终一定是纳入系统管理的体系,写成程序,成为系统的一部分。而不是无法复用游离与整体的各种脚本。 随着云计算时代的来临,中小型公司,不需要运维了。大型公司,没有工程开发能力的运维,是没有竞争力的。 最重要的学好 python 可以涨工资,可以涨工资,可以涨工资。(重要的事情说三遍。) 目前本人也是在学 python,正在把以前 shell 脚本的实例转换成 python 脚本。 python笔记:python实例手册(一直在看) 下载链接:http://down.51cto.com/data/2329173 4、意识篇 1) 安全意识: 运维人员的权限很大,所以一定要保证帐号/私钥的安全。 ● 最好使用加密工具存储。比如truecrypt,lpassword● 基于本地存储。切勿用网盘,也不建议用lastpass等● ssh私钥添加密码 2) 磨刀意识: 关于任何操作配置,最好先搞明白操作或配置的原理,然后再去操作。应一句话叫做“磨刀不误砍柴功”,而且对于类似的操作可以举一反三。 3) 计划意识: 复杂的变更操作比如多台主机以及牵涉到san存储,最好先作 操作计划,写计划文档,详细致每条命令,然后请高手帮忙审核。 这样能最大程度使整个操作过程安全。如果是重要的客户业务系统,操作最好有回退方案,而一旦变更失败,客户可以在短时间内将业务回退。4) 记录分享意识: 遇到自己认为较特殊的案例时,记得要写 案例过程及分析的文档。也方便自己以后翻看,或者和其他兄弟分享,作知识的传播以便于大家以后都能少走弯路。 5) 监控意识: 运维来说,监控是非常重要的,监控是发现系统各种异常的眼睛,所以运维应该和监控紧密配合。 6) 业务意识: 尽量了解维护的各主机上业务类型,以及各主机业务之间的关联性。因为任何维护工作都是为主机能提供业务服务的,当某业务中断,能最快的知道与此业务相关的主机群,从而缩小故障排查范围,最快定位故障。 附上运维思路拓扑图: 可以看看:安全运维理念(半神半仙亦民工)意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识,其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。 要知道做IT这行是苦B的,需要无尽的学习,不学习只会被淘汰,不想被年轻的淘汰,就只能不断增值自己,不然不是你工资无法提升,而是你无法再从事这行。 这个世界,在悄悄惩罚不改变的人...
-
本帖最后由 TOM666 于 2017-11-6 16:44 编辑从第一次看到Linux系统,从大神那里了解到了Linux灵活、干净、开源等诸多的好处后,我打算入坑。但是,作为一个游戏迷,用笔记本打游戏绝对是不能省的。装双系统或虚拟机又太麻烦,也容易影响性能,最好的解决方案是有两台不同系统电脑。然而,摸摸自己的荷包后,我决定探索一条Linux打游戏的道路! 入了Linux这个坑后,我发现,有这种烦恼的人还有很多。对于这些游戏迷而言,Linux最大的缺点不是上手难,而是大量游戏缺失。这么大的忧伤该怎么弥补?今天笔者就跟大家介绍几种Linux上打游戏的好方法,让被捧在神坛上的Linux系统沾一沾人间烟火! 1. Steam 玩 Linux 原生游戏 够刺激 易用指数:★★★★ 丰富指数:★★★☆ 推荐指数:★★★★★ 特点:原生游戏玩不停,没有兼容层,性能完全不是问题。 Steam平台 玩游戏的应该都知道这个美国电子游戏上威尔乌(Valve Corporation)推出的数字发行平台,它也被称为“电脑游戏界最大的数字发行平台”。在Steam上面,用户可以看到各种类型的游戏,可以进行安装并实现游戏自动更新(当然,也包括游戏内语音、聊天、社区等功能应用)。42824283Linux上使用Steam虽然这个平台最初旨在windows系统上提供支持,但后来也开始研发Linux和Mac OS系统版本,在2013年3月,Valve终于正式宣布了Linux版本Steam的发布。如今,在Steam上已经能够找到很多基于Linux系统原生的游戏版本。Steam就是一个大型游戏分发平台,你能找到几乎所有热门游戏的Linux原生版(比如Dota2),堪称业界良心。而且部分游戏在同一硬件标准下,在Linux系统中的性能表现甚至优于windows,激动不~ 2. Wine:让 Linux 开起来像 Windows 易用指数:★★★ 丰富指数:★★★★ 推荐指数:★★★☆ 特点:Linux系统中的模拟器软件,更新速度较快。 Wine并非是“葡萄酒”,而是一个兼容层,最早是“Windows Emulator”,即Windows模拟器的缩写。它通过兼容曾来将原本的windows系统调用转换为POSIX的系统调用。简言之,就是让应用软件误以为你的Linux系统其实是个windows系统,进而平滑运行。 在反恐精英最流行的年代,利用Wine来在Linux上玩这款游戏曾经是Linux爱好者最擅长的事情。如今,我们依然能够看到这些安装介绍。 不同于Steam支持的原生软件,你可以用Wine来运行一些小游戏,那些受众比较少,游戏开发者不愿意再开发一个Linux版本的游戏。或许将它与Steam互补,是个不错的选择。4284安装Wine其实类似Wine的工具还有很多,比如CrossOver、PlayOnLinux等。但是都没有Wine的操作简单和便宜(Wine免费)。4285利用Wine玩windows游戏P.S:Wine也被作为Linux初学者转换两个平台的媒介,但是微软曾经通过多种手段对Wine进行封锁,如果要使用这个方式还是要考虑到兼容、性能、安全等方面的问题。 3. GoG.com:找到所有你需要的游戏 易用指数:★★★☆ 丰富指数:★★★★ 推荐指数:★★★☆ 特点:无需安装终端,支持中文和人民币结算。4286GoG.com万圣节主题 对于很多Linux初学者而言,安装软件也同样非常麻烦,所以,你可以选用这款GoG.com,因为他是一个Web网页版游戏平台,同时,你也可以将找到的游戏通过GoG.com下载到本地。 GoG.com最早成立于9年前,并称为“Good Old Game”,早期专注于怀旧风,只发布一下年代比较久的游戏,直到2012年才改变风格,将新款游戏融入到自己的平台上。 GoG.com的优势在于不但五重断免安装,同时还可以将自己喜欢的游戏安装到多个操作系统上,十分方便。值得一提的是,大概是看到中国游戏力量之大,GoG.com在今年6月22日起,加入了简体中文支持,将游戏名称译为了国内玩家比较熟悉的名称,另外在结算方式上也开始支持人民币结算,包括:支付宝,银联,微信,财付通等方式。 但在流畅度体验上, GoG.com受到国内网络限制,网速有时略显迟缓,建议网友可以将游戏下载到本地。 4. Linux游戏平台/网站的其他推荐 一旦入了Linux这个坑后,你会发现,大多数网友对“Linux没法玩游戏”是存在偏见的。除了上面这些值得单独拿出来推荐的游戏方式外, 还有很多不错的,甚至针对Linux游戏爱好者提供的游戏平台值得一试。 这里简单介绍: Portable Linux Games:这是一个方便你下载Linux游戏安装包的平台。它没有炫酷的页面,而是简单直接的将所有游戏名称、 版本号和下载链接提供给你,供你安装。但这里的缺点是游戏数量和更新频率不太快。4287Linux Game Database与上面的相似,也是一个专门针对Linux用户的游戏网页,你可以在里面下载需要的游戏安装包,还可以适当的与网友讨论一番。4288 Penguspy这是一个游戏资讯类网站,不仅拥有大量的游戏,还提供了评分标准。将游戏分类为:冒险类、动作类、解密类、音乐类和竞赛类多种形态。并提供youtube试玩视频。 5. 裂墙推荐:终其一生的 Linux 游戏 Nethack 有网友形容如果要详细介绍Nethack,恐怕洋洋洒洒写上几万字也不够。毕竟找到一个能够陪伴成长, 永远无法终结,又很有趣的游戏并没那么容易。 Nethack可以说是上世纪八十年代Roguelike单人游戏的延续。这类游戏大多根植于奇幻世界背景下,需要玩家在随机生成的地牢中探索、回合制、基于磁贴的图像(tile-based graphics)以及角色的永久死亡。如今最流行的Nethack就是一款单机Roguelike类型游戏(可以通过游戏内的邮件进行互动)。4289Nethack种族划分虽然已经有图形化版本的Nethack,但据说骨灰级玩家依然三十年如一日的沉迷在无数个“d、%、f、#、^”等符号中。4290Nethack 每一款游戏的风靡都有其内在的原因,比如真是的游戏体验、能够使人舒缓压力,或者只是一个时间消遣。但是,我们都知道游戏是有自己的生命周期。一般来讲,手游的生命周期在2年左右,端游会更长一些,一般在3-5年,但你一定没有见过30年后依然焕发着生命力的游戏。 Nethack这款游戏最初开发与1987年,经历了三十年后,如今仍是一款活跃在开源社区的游戏,其生命力可见一斑,三十年如一日也所言不虚。当然这款游戏在中国很难普及,毕竟目前还没有很好的汉化版本,图形化依然是主流,也缺乏Linux使用习惯。如果你感兴趣,可以去尝试一下,但切记不要沉迷游戏哦。
-
3888 此前曾报道过 Linux Mint 18.3 将以 Sylvia 为代号,虽然 18.3 尚未公布任何具体的发布日期,但我们预计将于 2017 年 12 月基于 Ubuntu 16.04.3 LTS 发布。 再见 , KDE 在每月的新闻更新中,Linux Mint 团队分享了一些有意思的更新。其中最大的亮点是这个对初学者友好的 Linux 发行版将停止使用 KDE 桌面。因此,Linux Mint 18.3 将是最后一个使用 KDE 桌面的版本。 Linux Mint 团队表示,希望这个选择能让开发团队有更多的时间和资源来开发 Cinnamon 版本的 Linux Mint,并为用户带来更加精细和良好的桌面体验。 LMDE 3 开发正在进行中 LMDE,Linux Mint Debian **,是基于 Debian 的 Linux 发行版,面向有经验的用户。它比 Mint 稍快,并运行着较新的软件包。 在解释 LMDE 的重要性时,开发团队写道:“对于 Linux Mint 来说,继续支持 LMDE 作为一个预备选项是很重要的,因为要以防 Ubuntu 发生故障,还要将其作为许多项目和技术的开发目标,来保证 Linux Mint 之外的兼容性。” 对于它的关注群体来说,有一个好消息:LMDE 3 正在开发中。正如预期的那样,它将基于 Debian Stretch,代号是“Cindy”。 用户期待的 LMDE 3 将在 2018 年第一季度以基于 Cinnamon 3.8 的单一版本方式发布。 参考:FOSSBYTES, Linux Mint Blog
-
本帖最后由 达康书记 于 2017-10-24 11:13 编辑在linux中切换用户时变成-bash4.1-$,经常可能出现这种现象的原因就是这个用户目录下缺少用户登入需要的环境配置文件.bash_profile .bashrc等。 -bash4.1-# -bash4.1-$ 解决办法:将/etc/skel/.bash*拷贝到对应用户目录下,如root用户/root或非root用户/home/$user-name。 [code][root@PEK1000134303 home]# ls /etc/skel/.bash* -lh -rw-r--r--. 1 root root 18 Mar 23 2017 /etc/skel/.bash_logout -rw-r--r--. 1 root root 176 Mar 23 2017 /etc/skel/.bash_profile -rw-r--r--. 1 root root 124 Mar 23 2017 /etc/skel/.bashrc [root@PEK1000134303 home]#cp /etc/skel/.bash* /root/ [root@PEK1000134303 home]#cp /etc/skel/.bash* /home/$user-name/[/code] 大家试试,是不是很神奇啊,呵呵。
-
原文出处: tecmint 译文出处:Linux中国/Linux-pdz 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧。 grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum)。 我发现使用现实世界中的真实例子让你投身其中是让你接触grep命令的最容易方式。
-
本帖最后由 燕姑娘 于 2017-10-9 17:46 编辑使用 Linux 最酷的事情之一就是随着时间的推移,你可以不断获得新的知识。每天,你都可能会遇到一个新的实用工具,或者只是一个不太熟悉的奇技淫巧,但是却非常有用。这些零碎的东西并不总是能够改变生活,但是却是专业知识的基础。 即使是专家,也不可能事事皆知。无论你有多少经验,可能总会有更多的东西需要你去学习。所以,在这儿我列出了七件关于 Linux 你可能不知道的事情。 一个查找命令历史的交互模式 你可能对 history 命令非常熟悉,它会读取 bash 历史,然后以编号列表的方式输出到标准输出(stdout)。然而,如果你在 curl 命令的海洋里寻找一个特定的链接(URL),那么这个列表并不总是那么容易阅读的。 你还可以有另一个选择,Linux 有一个交互式的反向搜索可以帮助你解决这个问题。你可以通过快捷键 ctrl+r启动交互模式,然后进入一个交互提示中,它将会根据你提供的字符串来向后搜索 bash 历史,你可以通过再次按下 ctrl+r 向后搜索更老的命令,或者按下 ctrl+s 向前搜索。 注意,ctrl+s 有时会与 XON/XOFF 流控制冲突,即 XON/XOFF 流控制也会使用该快捷键。你可以通过运行 stty -ixon 命令来禁用该快捷键。在你的个人电脑上,这通常是有用的,但是在禁用前,确保你不需要 XON/XOFF 。 Cron 不是安排任务的唯一方式 Cron 任务对于任何水平的系统管理员,无论是毫无经验的初学者,还是经验丰富的专家来说,都是非常有用的。但是,如果你需要安排一个一次性的任务,那么 at 命令为你提供了一个快捷的方式来创建任务,从而你不需要接触 crontab 。 at 命令的运行方式是在后面紧跟着你想要运行任务的运行时间。时间是灵活的,因为它支持许多时间格式。包括下面这些例子: 2567 当你以带参数的方式输入 at 命令以后,将会提示你该命令将在你的 Linux 系统上运行。这可能是一个备份脚本,一套维护任务,或者甚至是一个普通的 bash 命令。如果要结束任务,可以按 ctrl+d 。 另外,你可以使用 atq 命令查看当前用户的所有任务,或者使用 sudo atq 查看所有用户的任务。它将会展示出所有排定好的任务,并且每个任务都伴有一个 ID 。如果你想取消一个排定好的任务,可以使用 atrm 命令,并且以任务 ID 作为参数。 你可以按照功能搜索命令,而不仅仅是通过名字 记住命令的名字非常困难,特别是对于初学者来说。幸运的是,Linux 附带了一个通过名字和描述来搜索 man 页面的工具。 下次,如果你没有记住你想要使用的工具的名称,你可以尝试使用 apropos 命令加上你想要干的事情的描述。比如,apropos build filesystem 将会返回一系列名字和描述包括了 “build” 和 “filesystem” 单词的工具。 apropos 命令接受一个或多个字符串作为参数,但同时它也有其他参数,比如你可以使用 -r 参数,从而通过正则表达式来搜索。 一个允许你来管理系统版本的替代系统 如果你曾进行过软件开发,你就会明白跨项目管理不同版本的语言的支持的重要性。许多 Linux 发行版都有工具可以来处理不同的内建版本。 可执行文件比如 java 往往符号链接到目录 /etc/alternatives 下。反过来,该目录会将符号链接存储为二进制文件并提供一个管理这些链接的接口。Java 可能是替代系统最常管理的语言,但是,经过一些配置,它也可以作为其他应用程序替代品,比如 NVM 和 RVM (NVM 和 RVM 分别是 NodeJS 和 Ruby 的版本管理器)。 在基于 Debian 的系统中,你可以使用 update-alternatives 命令创建和管理这些链接。在 CentOS 中,这个工具就叫做 alternatives 。通过更改你的 alternatives 文件中的链接,你便可以安装一个语言的多个版本,并且在不同的情况下使用不同的二进制。这个替代系统也提供了对任何你可能在命令行运行的程序的支持。 shred 命令是更加安全的删除文件方式 我们大多数时候总是使用 rm 命令来删除文件。但是文件去哪儿了呢?真相是 rm 命令所做的事情并不是像你所想像的那样,它仅仅删除了文件系统和硬盘上的数据的硬链接。硬盘上的数据依旧存在,直到被另一个应用重写覆盖。对于非常敏感的数据来说,这会带来一个很大的安全隐患。 shred 命令是 rm 命令的升级版。当你使用 shred 命令删除一个文件之后,文件中的数据会被多次随机覆写。甚至有一个选项可以在随机覆写之后对所有的数据进行清零。 如果你想安全的删除一个文件并且以零覆盖,那么可以使用下面的命令: 2592 同时,你也可以使用 -n 选项和一个数字作为参数,从而指定在随机覆盖数据的时候迭代多少次。 通过自动更正来避免输入很长的无效文件路径 有多少次,你输入一个文件的绝对路径,然而却看到“没有该文件或目录”的消息。任何人都会明白输入一个很长的字符串的痛苦。幸运的是,有一个很简单的解决办法。 内建的 shopt 命令允许你设置不同的选项来改变 shell 的行为。设置 cdspell 选项是避免输入文件路径时一个字母出错的头痛的一个简单方式。你可以通过运行 shopt -s cdspell 命令来启用该选项。启用该选项后,当你想要切换目录时,会自动更正为最匹配的目录。 Shell 选项是节省时间的一个好方法(更不用说减少麻烦),此外还有许许多多的其他选项。如果想查看你的系统中所有选项的完整列表,可以运行不带参数的 shopt 命令。需要注意的是,这是 bash 的特性,如果你运行 zsh 或者其他可供选择的 shell,可能无法使用。 通过子 shell 返回到当前目录 如果你曾经配置过一个比较复杂的系统,那么你可能会发现你需要频繁的更换目录,从而很难跟踪你所在的位置。如果在运行完一个命令后自动返回到当前位置,不是很好吗? Linux 系统实际上提供了一个解决该问题的方法,并且非常简单。如果你想通过 cd 命令进入另一个目录完成一些任务,然后再返回当前工作目录,那么你可以将命令置于括号中。你可以在你的 Linux 系统上尝试下面这个命令。记住你当前的工作目录,然后运行: 2571 该命令会输出 /etc 目录的内容。现在,检查你的当前工作目录。它和执行该命令前的目录一样,而不是 /etc 目录。 它是如何工作的呢?运行一个括号中的命令会创建一个子 shell 或一个当前 shell 进程的复刻副本。该子 shell 可以访问所有的父变量,反之则不行。所以请记住,你是在运行一个非常复杂的单行命令。 在并行处理中经常使用子 shell ,但是在命令行中,它也能为你带来同样的力量,从而使你在浏览文件系统时更加容易。 作者简介: Phil Zona 是 Linux Academy 的技术作家。他编写了 AWS、Microsoft Azure 和 Linux 系统管理的指南和教程。他同时也管理着 Cloud Assessments 博客,该博客旨在帮助个人通过技术实现他们的事业目标。 来自:[color=rgb(61,177,88)]Linux中国 作者:[color=rgb(61,177,88)]PHIL ZONA
-
求教~{:2_25:}
人生苦短,我用Python
发表于2017-09-29 22:19:34
2017-09-29 22:19:34
最后回复
人生苦短,我用Python
2017-09-29 22:19:34
3265 0 -
非共享裸盘使用时划分过分区,对指定分区扩容,在线扩容可参考如下步骤。提示:i)fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。如果使用fdisk对大于2T的磁盘分区,虽然可以分区,但仅识别2T的空间,所以磁盘容量超过2T的话,就使用Parted工具来实现对GPT磁盘进行分区操作。 ii)fdisk和parted对同一个磁盘不可以交互使用,否则会导致分区的起始扇区不一致,从而导致数据出现问题。
-
近日,微软 SQL Server 最近达成一个新的里程碑,最新版SQL Server 2017 除了支持 Windows 平台,将首次登陆 Linux 平台,并且还支持 Docker。此举让用户(特别是企业用户)有了更多选择。2016 年 6 月份,微软就提前预告 SQL Server 将支持 Linux 平台近年来, SQL Server 正在一直演化,除了想一改 DMS(数据库管理系统)的角色,还想介入到数据分析、机器学习和数据科学领域。2017 年 4 月份, SQL Server 发布了一个重要组件,支持在 SQL Server 中用 Python 运行机器学习负载。借助这个特性,数据科学家直接操作处理储存在 SQL Server 的数据,不用数据迁移了。机器学习/数据科学领域内的另一种编程语言 R,SQL Server 在去年就整合了。更多细节,见 SQL Server 官方:https://www.microsoft.com/en-us/sql-server/sql-server-2017参考:VentureBeta、SQL Server
人生苦短,我用Python
发表于2017-09-28 15:43:11
2017-09-28 15:43:11
最后回复
人生苦短,我用Python
2017-09-28 15:43:11
3103 0 -
1、使用xshell通过EIP直接SSH 2433 2、接受并保存,按照“游览—>用户秘钥—>导入”导入xxx.pem秘钥对。 2434 2435 3、选择已导入的秘钥对登陆成功。 2436
-
本帖最后由 达康书记 于 2017-9-23 16:13 编辑不同人对noVNC窗口大小有不同的诉求,笔者教大家如何自己调整,高手飘过,请轻拍砖。 管理控制台终端Web VNC窗口大小实际是由系统设置的分辨率相关,Linux系统控制分辨率需要将vga参数传递到kernel中。 通过VGA启动参数来设置屏幕分辨率模式: [code] Mode 0x0317: 1024x768 (+2048), 16 bits Mode 0x0318: 1024x768 (+4096), 24 bits --------推荐使用 Mode 0x0314: 800x600 (+1600), 16 bits Mode 0x0315: 800x600 (+3200), 24 bits Mode 0x0311: 640x480 (+1280), 16 bits Mode 0x0312: 640x480 (+2560), 24 bits[/code]修改VNC窗口大小方法如下: 编辑文件/boot/grub/grub.conf,在kernel的最后一行加入:vga=0x0318 (代表1024x768,24色) [code]default=0 timeout=5 splashimage=(hd0,1)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-696.6.3.el6.x86_64) root (hd0,1) kernel /boot/vmlinuz-2.6.32-696.6.3.el6.x86_64 ro root=UUID=f382872b-eda6-43df-9516-5a687fecdce6 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM vga=0x0318 rhgb quiet initrd /boot/initramfs-2.6.32-696.6.3.el6.x86_64.img [/code]输入命令:vi /boot/grub/grub.conf,然后在窗口中编辑。修改后保存,重启服务器后生效。 2262
-
本帖最后由 达康书记 于 2017-9-23 15:42 编辑华为云Linux弹性云服务器的静态主机名来源于创建弹性云服务器时,通过Cloud-init注入的用户自定义名称。 虽然hostname命令可以修改Linux弹性云服务器的主机名,但是,如果您希望修改后的主机名在弹性云服务器关机、重启后仍然生效,需要将其写入相应的配置文件中,使之永久生效。 假设修改后的主机名为“new_hostname”。 步骤 1 修改配置文件“/etc/hostname”。 a. 执行以下命令,编辑配置文件“/etc/hostname”。 [code]sudo vim /etc/hostname[/code]b. 修改配置文件,将文件中的主机名替换为修改后的主机名(new_hostname)。 c. 执行以下命令,保存并退出文件。 [code]:wq[/code]步骤 2 修改配置文件“/etc/sysconfig/network”。 a. 执行以下命令,编辑配置文件“/etc/sysconfig/network”。 [code]sudo vim /etc/sysconfig/network[/code]b. 修改涉及“HOSTNAME”的参数值,将其设置为修改后的主机名(new_hostname)。 [code]HOSTNAME=修改后的主机名[/code][code]示例:HOSTNAME=new_hostname[/code]c. 执行以下命令,保存并退出文件。 [code]:wq[/code]步骤 3 修改配置文件“/etc/cloud/cloud.cfg”。 a. 执行以下命令,编辑配置文件“/etc/cloud/cloud.cfg”。 [code]sudo vim /etc/cloud/cloud.cfg[/code]b. 按需选择如下方法,修改配置文件。 − 方法:删除或者注释语句- update_hostname。 弹性云服务器关机、重启后,修改后的主机名(new_hostname)仍然生效。但是,如果使用该云服务器制作私有镜像,并使用生成的镜像重新创建弹性云服务器,用户可以通过Cloud-init注入用户自定义名称(如new_new_hostname),并长久有效地修改静态主机名。 步骤 4 执行以下命令,重启弹性云服务器。 [code]sudo reboot[/code]步骤 5 执行以下命令,验证主机名的修改是否永久生效。 [code]sudo hostname[/code]如果回显的内容是修改后的主机名(new_hostname),则表示主机名修改成功,永久生效。
-
本帖最后由 达康书记 于 2017-9-20 21:17 编辑我申请了一个云主机,利用密钥对远程登录,隔一段时间我要更换密钥对,删除老的,通过portal新建一个,无法应用新的密钥对注入来登陆。 还有,我申请了一个云主机,利用密码对远程登录,隔一段时间我要更换密钥对来登陆,通过portal新建一个,无法应用新的密钥对注入来登陆。 这个华为云是出于啥考虑呢,若要将华为云Linux云服务器的秘钥重置或密码切秘钥,我该如何办呢?这个估计是出于仿照公有云大厂商AWS做法为了安全考虑,平台不提供在线监控或注入虚拟机的后门操作,华为云号称zero-inject零注入果真名不虚传的。 1、首先登陆华为云Linux云服务器上制作密钥对,首先用密码或老秘钥登录到你打算使用密钥登录的账户,然后执行以下命令: [code][root@host ~]$ ssh-keygen == 建立密钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): == 按 Enter Created directory ´/root/.ssh´. Enter passphrase (empty for no passphrase): == 输入密钥锁码,或直接按 Enter 留空 Enter same passphrase again: == 再输入一遍密钥锁码 Your identification has been saved in /root/.ssh/id_rsa. == 私钥 Your public key has been saved in /root/.ssh/id_rsa.pub. == 公钥 The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host[/code]密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用,也可以留空,实现无密码登录。现在,在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件:id_rsa 为私钥,id_rsa.pub 为公钥。 2、在华为云Linux云服务器上安装公钥 键入以下命令,在服务器上安装公钥: [code][root@host ~]$ cd .ssh [root@host .ssh]$ cat id_rsa.pub >> authorized_keys[/code] 如此便完成了公钥的安装。 为了确保连接成功,请保证以下文件权限正确: [code][root@host .ssh]$ chmod 600 authorized_keys [root@host .ssh]$ chmod 700 ~/.ssh[/code] 3、[可选项] 设置 SSH,打开密钥登录功能(华为云Linux云服务器默认是开启的) 编辑 /etc/ssh/sshd_config 文件,进行如下设置: [code]RSAAuthentication yes PubkeyAuthentication yes[/code] 另外,请留意 root 用户能否通过 SSH 登录: [code]PermitRootLogin yes[/code] 当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录: [code]PasswordAuthentication no[/code] 最后,重启 SSH 服务: [code][root@host .ssh]$ service sshd restart[/code] 4、将私钥下载到客户端,然后转换为 PuTTY 能使用的格式。 使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上,请谨慎保管好以防丢失。 然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你刚才设置了密钥锁码,这时则需要输入。 载入成功后,PuTTYGen 会显示密钥相关的信息。 在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。 今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。 当然,根据个人喜欢,也可以使用xshell,我就比较喜欢xshell工具。 至此,成功安全的完成华为云Linux云服务器的秘钥重置或密码切秘钥的诉求,完了可以将portal的秘钥对删掉,不依赖平台的秘钥对,是不是很简单也安全啊,高手请飘过,拍砖的请轻点。
-
本帖最后由 我要选李白 于 2017-9-15 18:20 编辑Mysql是一款很常见的关系型数据库,虽然目前在逐渐式微,并且分裂出了MariaDB, 但仍然是很多的轻型应用的首选。 那么如何在华为云上部署Mysql呢,笔者经过实验,发现与传统部署模式完全一致,无需做任何改动,现提供以下安装步骤,仅作抛砖引玉: Linux/UNIX上安装MysqlLinux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: [*]MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。 [*]MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。 [*]MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。 [*]MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。 [*]MySQL-bench - MySQL数据库服务器的基准和性能测试工具。 以下安装Mysql RMP的实例是在SuSE Linux系统上进行,当然该安装步骤也适合应用于其他支持RPM的Linux系统,如:Centos。 安装步骤如下: 使用root用户登陆你的Linux系统。 下载Mysql RPM包,下载地址为:MySQL 下载。 通过以下命令执行Mysql安装,rpm包为你下载的rpm包: [code][root@host]# rpm -i MySQL-5.0.9-0.i386.rpm[/code]以上安装mysql服务器的过程会创建mysql用户,并创建一个mysql配置文件my.cnf。 你可以在/usr/bin和/usr/sbin中找到所有与MySQL相关的二进制文件。所有数据表和数据库将在/var/lib/mysql目录中创建。 以下是一些mysql可选包的安装过程,你可以根据自己的需要来安装:[code][root@host]# rpm -i MySQL-client-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-devel-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-shared-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-bench-5.0.9-0.i386.rpm[/code] Window上安装Mysql Window上安装Mysql相对来说会较为简单,你只需要载 MySQL 下载中下载window版本的mysql安装包,并解压安装包。 双击 setup.exe 文件,接下来你只需要安装默认的配置点击"next"即可,默认情况下安装信息会在C:\mysql目录中。 接下来你可以通过"开始" =》在搜索框中输入 " cmd" 命令 =》 在命令提示符上切换到 C:\mysql\bin 目录,并输入一下命令: [code]mysqld.exe --console[/code]如果安装成功以上命令将输出一些mysql启动及InnoDB信息。 验证Mysql安装 在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常。 使用 mysqladmin 工具来获取服务器状态: 使用 mysqladmin 命令俩检查服务器的版本,在linux上该二进制文件位于 /usr/bin on linux ,在window上该二进制文件位于C:\mysql\bin 。 [code][root@host]# mysqladmin --version[/code]linux上该命令将输出以下结果,该结果基于你的系统信息: [code]mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386[/code]如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。 使用 MySQL Client(Mysql客户端) 执行简单的SQL命令你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。 命令如下:[indent][code][root@host]# mysql [/code][/indent]以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:[code]mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.13 sec) [/code]Mysql安装后需要做的 Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码: [indent][code][root@host]# mysqladmin -u root password "new_password"; [/code][/indent]现在你可以通过以下命令来连接到Mysql服务器: [code][root@host]# mysql -u root -p Enter password:******* [/code]注意:在输入密码时,密码是不会显示的,请确保输入正确。 Linux系统启动时启动 MySQL如果你需要在Linux系统启动时启动 MySQL 服务器,你需要在 /etc/rc.local 文件中添加以下命令:[indent][code]/etc/init.d/mysqld start[/code]同样,你需要将 mysqld 二进制文件添加到 /etc/init.d/ 目录中。 [/indent]
-
本帖最后由 达康书记 于 2017-9-15 11:05 编辑华为云上以CentOS 7.3 64bit为例,root分区在非末尾分区(e.g: /dev/xvda1: root,/dev/xvda2: swap),如何自定义个可自动扩容root分区的Linux私有镜像。 1、查询扩容系统盘分区情况,第一分区是根分区,第二分区是swap [code][root@sluo-ecs-e6dc-resizefs ~]# parted -l /dev/xvda Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 41.0GB 40.9GB primary ext4 boot 2 41.0GB 42.9GB 2000MB primary linux-swap(v1) [root@sluo-ecs-e6dc-resizefs ~]# blkid /dev/xvda1: UUID="7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea" TYPE="ext4" /dev/xvda2: UUID="5de3cf2c-30c6-4fb2-9e63-830439d4e674" TYPE="swap" [/code] 2、编辑fstab分区表将swap分区挂载删掉 [code][root@sluo-ecs-e6dc-resizefs ~]# tail -n 3 /etc/fstab # UUID=7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea / ext4 defaults 1 1 UUID=5de3cf2c-30c6-4fb2-9e63-830439d4e674 swap swap defaults 0 0 [root@sluo-ecs-e6dc-resizefs ~]# vi /etc/fstab [root@sluo-ecs-e6dc-resizefs ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jun 27 10:03:28 2017 # # Accessible filesystems, by reference, are maintained under ´/dev/disk´ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea / ext4 defaults 1 1 [/code] 3、关闭swap [code][root@sluo-ecs-e6dc-resizefs ~]# swapoff -a[/code] 4、删掉swap分区 [code][root@sluo-ecs-e6dc-resizefs ~]# parted /dev/xvda GNU Parted 3.1 Using /dev/xvda Welcome to GNU Parted! Type ´help´ to view a list of commands. (parted) p Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 41.0GB 40.9GB primary ext4 boot 2 41.0GB 42.9GB 2000MB primary linux-swap(v1) (parted) rm 2 (parted) p Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 41.0GB 40.9GB primary ext4 boot (parted) quit Information: You may need to update /etc/fstab. [root@sluo-ecs-e6dc-resizefs ~]# parted -l /dev/xvda Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 41.0GB 40.9GB primary ext4 boot[/code] 5、用yum安装一个叫growpart的工具,growpart可能集成在cloud-utils-growpart/cloud-utils/cloud-initramfs-tools/cloud-init包里,可以直接yum install cloud-*确保growpart命令可用即可 [code][root@sluo-ecs-e6dc-resizefs ~]# yum install cloud-utils cloud-utils-growpart[/code] 6、使用growpart将swap扩容到第一分区的root分区 [code][root@sluo-ecs-e6dc-resizefs ~]# growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=79978496 end=79980544 new: size=83873317,end=83875365 [root@sluo-ecs-e6dc-resizefs ~]# parted -l /dev/xvda Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 42.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 42.9GB 42.9GB primary ext4 boot[/code] 7、关闭虚拟机转成私有镜像 [code][root@sluo-ecs-e6dc-resizefs ~]# poweroff Connection closed by foreign host. Disconnected from remote host(139.159.209.21:22) at 11:08:54. Type `help´ to learn how to use Xshell prompt.[/code] 8、用此新私有镜像发放虚拟机,指定系统盘100G,登陆虚拟机检查是不是自动扩容到root分区了 [code][root@ecs-b002-100g-resizefs ~]# parted -l /dev/xvda Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 107GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 107GB 107GB primary ext4 boot [root@ecs-b002-100g-resizefs ~]# blkid /dev/xvda1: UUID="7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea" TYPE="ext4" [root@ecs-b002-100g-resizefs ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Jun 27 10:03:28 2017 # # Accessible filesystems, by reference, are maintained under ´/dev/disk´ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=7c4fce5d-f8f7-4ed6-8463-f2bd22d0ddea / ext4 defaults 1 1[/code] 9、OK成功了,是不是很简单啊。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签