Linux终端:用cat命令查看不可见字符 操作系统

Linux终端:用cat命令查看不可见字符

时常,某个程序或软件并没有语法错误,并且你检查它的相关内容也确实没有发现问题。这是因为你用普通文本编辑器软件来查看的时候,有许多字符没有显示出来,但在终端使用cat命令可以很容易地检测出是否存在这些字符。 首先,我们创建一个简单的文本文件,写入一些特殊字符。打开终端,运行命令: printf 'testing\012\011\011testing\014\010\012more testing\012\011\000\013\000even more testing\012\011\011\011\012' > /tmp/testing.txt   现在用不同的编辑器软件打开,显示的结果会不同。用简单的cat打开将显示: 如果用nano或者vim打开,将会看到: 现在我们给cat加上一些选项参数,以便能显示出特殊字符来。 用cat -T命令来显示TAB键的字符^I 用cat -E命令来显示行尾的结束字符 用简单的cat -A命令就可以显示所有不可见的字符:
阅读全文
cat命令详解 操作系统

cat命令详解

cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的; cat主要有三大功能: 1.一次显示整个文件。 如 cat   filename 2.从键盘创建一个文件。 如 cat  >  filename 只能创建新文件,不能编辑已有文件. 3.将几个文件合并为一个文件(点击查看实用例子)。 如 cat   file1   file2  > file3 cat具体命令格式为 : cat fileName 说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案) 参数: -n 或 –number 由 1 开始对所有输出的行数编号 -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号 -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 –show-nonprinting 范例: 把 file1 的档案内容加上行号后输入 file2 这个档案里: cat -n file1 > file2 把 file1 和 file2 的档案内容加上行号(空白行不加)之后将内容附加到file3 里: cat -b file1 file2 >> file3 cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容,等同于 >/etc/test.txt (慎用!) 在linux shell脚本中我们经常见到类似于cat << EOF的语句,不熟悉的童鞋可能觉得很奇怪:EOF好像是文件的结束符,用在这里起到什么作用? EOF是“end of file”,表示文本结束符,也就是说cat检测到EOF字串的时候就会结束操作。 二、使用 看例子是最快的熟悉方法: # cat << EOF > test.sh > 我是第一行 > 我是第二行 > EOF 结果: cat test.sh...
阅读全文
分享一个Linux无法创建文件夹,但是目录权限却显示正常的问题和解决 操作系统

分享一个Linux无法创建文件夹,但是目录权限却显示正常的问题和解决

今天发现一个疑难杂症:发现批量发布一个新版本程序时,发现有一台没有成功。亲自登陆上去看了下,发现原来是发布帐号在某个目录下创建目录失败了! 人工 touch 试了下,发现提示没有权限。 然后 ls -l 看了下,发现一切正常: 奇了怪了啊,于是看下上层目录是否有权限,结果发现从/ 到 release 权限都是正常的! 最终,灵机一动,这个帐号是否可能是被删除过,后面又添加的呢??? 先使用id 看了下这个用户信息: 然后,对没有权限的目录使用 ls -nd /data/TNM2/release 果然啊!这UID都对不上,如果不看UID还真不知道是什么原因呢! 既然知道怎么回事了,那就简单了。 使用 chmod 重新授权即可:chmod -R publish:users /data/TNM2/release Ps:没有权限新建文件或修改文件其实还有其他一些因素,比如比较隐秘的“加锁”命令:chattr 感兴趣的可以看下: Linux下巧用chattr、watch命令的实
阅读全文
LVS+Keepalived负载均衡主备&双主架构全攻略 操作系统

LVS+Keepalived负载均衡主备&双主架构全攻略

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。 Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现 一、LVS+Keepalived负载均衡主备架构 I. 网站负载均衡拓朴图 (略) IP信息清单: 名称 IP LVS-DR-Master 192.168.2.98 LVS-DR-Backup 192.168.2.99 LVS-DR-VIP 192.168.2.100 Realserver01 192.168.2.101 Realserver02 192.168.2.102 Realserver03 192.168.2.103 Realserver04 192.168.2.104 II.安装ipvsadm和keepalived软件包 ipvsadm: http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz keepalived:http://www.keepalived.org/software/keepalived-1.1.15.tar.gz 下载后建议统一放置在/usr/local/src/lvs III. 配置Realserver脚本 在4台Realserver主机上建立如下脚本,然后执行 IV. 配置keepalived实现负载均衡和和高可用性 1.在LVS-DR-Master主机上编辑keepalived的配置文件 : vim /etc/keepalived/keepalived.conf     2.编辑LVS-DR-Backup上的keepalived配置文件(可拷贝Master上的),然后如下修改: 其余保持不变即可。 V. 启动LVS Realserver脚本启动之后不需要操作,然后依次启动LVS主机上的keepalived服务即可: service keepalived start 二、LVS+Keepalived负载均衡双主互备架构 IP信息清单: 名称 IP LVS-DR-Master 192.168.2.98 LVS-DR-Backup 192.168.2.99 LVS-DR-VIP1 192.168.2.100 LVS-DR-VIP2 192.168.2.105 Realserver01 192.168.2.101 Realserver02 192.168.2.102 Realserver03 192.168.2.103 Realserver04 192.168.2.104 双主互备方案需要2个VIP,分别绑定到两台LVS主机上,然后修改keepalived.conf让两台LVS互相作为备机,代码稍作修改即可: 说明:以上则为一台LVS主机的keepalived配置,由于篇幅过长,就不另提供相应的互备配置了,其实很简单,就是一边为MARSTER时,对应的互备配置就是BACKUP,然后其他对应位置均做修改即可,通过2个VIP让2台LVS主机均处于工作状态,互为主备结构,提高资源利用率! 最佳建议:将域名同时绑定到2个VIP,然后轮询解析,实现均衡流量的目的! 由于篇幅过长,有的地方可能没写到位,若涧客们有任何疑问请留言~
阅读全文
抓取占用CPU高的JAVA线程,进而找出有问题的WEB页面 操作系统

抓取占用CPU高的JAVA线程,进而找出有问题的WEB页面

写在前面:当一个台WEB主机(JAVA平台)上有多个站点时,很可能因为一个站点项目出现死锁之类的BUG而导致所有站点挂掉!最烦的就是因为站点过多,在日志无法具体指向的时候,你根本无法确定那个站点出现BUG,从而你也没法推给开发人员解决。                    下面,就介绍一个抓取高占用CPU的线程的简单方法: 运行top命令取得JAVA线程号(PID),假如是2068; 运行jstack + pid 命令导出JAVA线程信息到result文件,命令行为 jstack 2068>result 运行top -p 2068 -H 查看CPU占用排名情况,并记录PID; 运行 ./jtgrep +PID 找到线程头文字(PID为第3步获取) ; 使用vi/vim打开result,查询头文字就能找到相应线程。 下面为jtgrep代码:   写在后面:此方法无须安装任何软件,能够快速找出占用CPU的JAVA线程,是发现同类问题的首选办法,但很多时候你可能找到的是VM threads线程或者GC线程。。。无法真正找到毒瘤,那就只能另寻他法了。
阅读全文
详解Linux运维工程师必备技能 操作系统

详解Linux运维工程师必备技能

本人是Linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧。 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。 我就大概列出这几方面,这样入门就基本没问题了。 Linux系统如果是学习可以选用Redhat或CentOS,特别是CentOS在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 。。。 工具如下: 1、Linux系统基础 这个不用说了,是基础中的基础,连这个都不会就别干了,参考书籍,可以看鸟哥linux基础篇,至少要掌握这书60%内容,没必须全部掌握,但基本命令总得会吧。 2、网络服务 服务有很多种,每间公司都会用到不同的,但基础的服务肯定要掌握,如FTP, DNS,SAMBA, 邮件, 这几个大概学一下就行,LAMP和LNMP是必须要熟练,我所指的不是光光会搭建,而是要很熟悉里面的相当配置才行,因为公司最关键的绝对是WEB服务器,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,至少有些公司还会用tomcat,这个也最好学一下。其实网络服务方面不用太担心,一般公司的环境都已经搭建好,就算有新服务器或让你整改,公司会有相应的文档让你参照来弄,不会让你乱来的,但至少相关的配置一定要学熟,而且肯定是编译安装多,那些模块要熟悉一下他的作用,特别是PHP那些模块。 这上面2点只是基础,也是必要条件,不能说是工具,以下才是真正的要掌握的工具。 3、shell脚本和另一个脚本语言 shell是运维人员必须具备的,不懂这个连入职都不行,至少也要写出一些系统管理脚本,最简单也得写个监控CPU,内存比率的脚本吧,这是最最最基本了,别以为会写那些猜数字和计算什么数的,这些没什么作用,只作学习意义,写系统脚本才是最有意义,而另一个脚本语言是可选的,一般是3P,即python, perl和php,php就不需要考虑了,除非你要做开发,我个人建议学python会比较好,难实现自动化运维,perl是文本处理很强大,反正这两个学一个就行了。 4、sed和awk工具 必须要掌握,在掌握这两个工具同时,还要掌握正则表达式,这个就痛苦了,正则是最难学的表达式,但结合到sed和awk中会很强大,在处理文本内容和过滤WEB内容时十分有用,不过在学shell的同时一般会经常结合用到的,所以学第3点就会顺便学第4点。 5、文本处理命令 sort, tr, cut, paste, uniq, tee等,必学,也是结合第3点时一并学习的。 6、数据库 首选mysql,别问我为什么不学sqlserver和oracle,因为Linux用得最多绝对是mysql,增删改查必学,特别要学熟查,其它方面可能不太需要,因为运维人员使用最多还是查,哪些优化和开发语句不会让你弄的。 7、防火墙 不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。 8、监控工具 十分十分重要,我个人建议,最好学这3个,cacti,nagios,zabbix,企业用得最多应该是 nagios 和 zabbix,反正都学吧,但nagios会有点难,因为会涉及到用脚本写自动监控,那个地方很难。 9、集群和热备 这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学学nginx集群,反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的,mysql热备也要学,就是主从复制,这个别告诉我容易,其实不容易的,要学懂整个流程一点也不容易,只照着做根本没意思。 10、数据备份 不学不行,工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar, dump, rsync等,最好多了解一下。 算了,说到这10点已经够你受了,应该可以入门了,因为有些技术会比较难学,例如apache和nginx中还有些很重要的技术,如系统调优和服务优化,还有程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,就脚本那部分已经让你很吃力了,我建议是先学熟shell,等工作后再学另一门脚本语言,这样会比较好。 以上就是踏入Linux运维工程师需要掌握的工具,其实还有很多工具要掌握的,但你在学习环境中是很难学到,最后我再提醒一下,这里所指的工具相当于技能,而不是像windows或ubuntu那些图形化工具,那些工具没用的,还有,学Linux就别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装Linux,根本达不到学习效果。
阅读全文