欢迎光临
我们一直在努力

hadoop中DataNode节点无法启动

u22e阅读(2054)

hadoop中DataNode节点无法启动

查看日志报错如下

at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:828)
at java.lang.Thread.run(Thread.java:745)
2017-05-01 10:34:13,944 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to host103/192.168.1.103:9000
2017-05-01 10:34:14,045 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned)
2017-05-01 10:34:16,045 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2017-05-01 10:34:16,047 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
2017-05-01 10:34:16,049 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:

从日志中可以看出,原因是因为datanode的clusterID 和 namenode的clusterID 不匹配

打开hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID项正如日志里记录的一样,确实不一致,修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)或者单独启动

/hadoop-2.6.0/sbin/hadoop-daemon.sh start datanode

/hadoop-2.6.0/sbin/yarn-daemon.sh start nodemanager

再执行jps命令可以看到datanode已正常启动。

Centos 7 firewalld 的使用

u22e阅读(3560)

查看防火墙状态

[root@MyCloudServer ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Tue 2017-04-25 13:27:30 CST; 10min ago
 Main PID: 584 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─584 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Apr 25 13:27:30 MyCloudServer systemd[1]: Started firewalld - dynamic firewall daemon.

或:

[root@MyCloudServer ~]# firewall-cmd  --state
running

查看版本

[root@MyCloudServer ~]# firewall-cmd --version
0.3.9    

关闭防火墙

[root@MyCloudServer ~]# systemctl stop firewalld

添加端口

[root@MyCloudServer ~]# firewall-cmd --zone=public --add-port=65422/tcp --permanent
success
--permanent 表示永久 --zone=public 指定区域 --add-port 添加端口

添加完之后重新加载下

[root@MyCloudServer ~]# firewall-cmd --reload

然后查看

[root@MyCloudServer ~]# firewall-cmd --zone=public --list-ports
65422/tcp

禁止端口

[root@MyCloudServer ~]# firewall-cmd --permanent --remove-port=80/tcp
success

    [root@MyCloudServer ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 80/tcp 65422/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

[root@MyCloudServer ~]# firewall-cmd --reload
success
    [root@MyCloudServer ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports: 65422/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

查看区域信息

1.设置默认的区域

firewall-cmd --set-default-zone=public

2.查看支持的区域

[root@MyCloudServer ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

firewalld默认有8个zone:

  • drop 默认丢弃所有包
  • block 拒绝所有外部链接,允许内部发起的连接
  • public 指定外部连接可以进入
  • external 同上,对伪装的进入连接,一般用于路由转发
  • dmz 和硬件防火墙一样,受限制的公共连接可以进入
  • work 工作区,概念和workgroup一样,指定的外部链接允许
  • home 类似家庭组
  • internal 信任所有链接

3.获取活跃的区域

[root@MyCloudServer ~]# firewall-cmd --get-active-zones
public
  interfaces: eth0

过滤规则

  • source: 根据源地址过滤
  • interface: 根据网卡过滤
  • service: 根据服务名过滤
  • port: 根据端口过滤
  • icmp-block: icmp 报文过滤,按照 icmp 类型配置
  • masquerade: ip 地址伪装
  • forward-port: 端口转发
  • rule: 自定义规则

其中,过滤规则的优先级遵循如下顺序

  • source
  • interface
  • firewalld.conf

查看支持的服务

[root@MyCloudServer ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https

其系统配置文件都在/usr/lib/firewalld/

[root@hk-server ~]# cd /usr/lib/firewalld/
[root@hk-server firewalld]# ls
icmptypes  services  zones
[root@hk-server firewalld]# cd zones/
[root@hk-server zones]# ls
block.xml  dmz.xml  drop.xml  external.xml  home.xml  internal.xml  public.xml  trusted.xml  work.xml
[root@hk-server zones]# cd ..
[root@hk-server firewalld]# ls
icmptypes  services  zones
[root@hk-server firewalld]# cd services/
[root@hk-server services]# ls
amanda-client.xml      http.xml         libvirt.xml  pmwebapis.xml       smtp.xml
bacula-client.xml      imaps.xml        mdns.xml     pmwebapi.xml        ssh.xml
bacula.xml             ipp-client.xml   mountd.xml   pop3s.xml           telnet.xml
dhcpv6-client.xml      ipp.xml          ms-wbt.xml   postgresql.xml      tftp-client.xml
dhcpv6.xml             ipsec.xml        mysql.xml    proxy-dhcp.xml      tftp.xml
dhcp.xml               kerberos.xml     nfs.xml      radius.xml          transmission-client.xml
dns.xml                kpasswd.xml      ntp.xml      RH-Satellite-6.xml  vnc-server.xml
ftp.xml                ldaps.xml        openvpn.xml  rpc-bind.xml        wbem-https.xml
high-availability.xml  ldap.xml         pmcd.xml     samba-client.xml
https.xml              libvirt-tls.xml  pmproxy.xml  samba.xml
[root@hk-server services]# cd ..
[root@hk-server firewalld]# ls
icmptypes  services  zones
[root@hk-server firewalld]# cd icmptypes/
[root@hk-server icmptypes]# ls
destination-unreachable.xml  parameter-problem.xml     router-solicitation.xml
echo-reply.xml               redirect.xml              source-quench.xml
echo-request.xml             router-advertisement.xml  time-exceeded.xml    

用户配置文件都在

[root@hk-server zones]# cd /etc/firewalld/
[root@hk-server firewalld]# ls
firewalld.conf  icmptypes  lockdown-whitelist.xml  services  zones

可以修改配置文件添加或删除端口

[root@hk-server firewalld]# cd zones/
[root@hk-server zones]# ls
public.xml  public.xml.old
[root@hk-server zones]# cat public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="65422"/>
</zone>
[root@hk-server zones]# cat public.xml.old
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="80"/>
  <port protocol="tcp" port="65422"/>
</zone>

Centos7安装配置NFS服务和挂载

u22e阅读(2412)

NFS简介

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

RPC(NFS服务需要依赖RPC服务,这个比较重要) 要想了解NFS,必然要提到RPC这个服务。 因为NFS支持的功能还是比较多的,并且不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口才没有固定,而是采用随机取用一些未被使用的小于1024的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰,因为客户端要知道服务器端的相关端口才能够联机,此时我们需要远程过程调用(RPC)的服务。 RPC最主要的功能就是指定每个NFS功能所对应的端口号,并且回报给客户端,让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口,并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口,所以可以让NFS的启动更为容易。 注意,启动NFS之前,要先启动RPC服务;否则NFS无法向RPC注册。另外,重新启动RPC时原本注册的数据会不见,因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册,比如NFS服务。

当客户端有NFS文件要存取请求时,它向服务器端访问数据,有如下几个步骤: (1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求。 (2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。 (3)客户端了解正确的端口后,就可以直接与NFS守护进程来联机,然后访问数据。

其实,我们可以简单的理解为:NFS当作RPC服务中的一种,同时将RPC服务当作NFS服务器与NFS客户端的中间接口人,就是说NFS客户端访问NFS服务器,必须经过RPC这个接口人,才可以去访问,否则就直接死翘翘了。
安装NFS

方法1:

检查:rpm -qa nfs-utils rpcbind 最佳
yum install nfs-utils rpcbind -y
方法2: LANG = en

yum grouplist | grep -i nfs
yum groupinstall “NFS file server ” -y
启动 rpcbind (centos 6.8)

/etc/init.d/rpcbind status
/etc/init.d/rpcbind start
启动 rpcbind (centos 7)

systemctl start rpcbind.service
systemctl status rpcbind.service
查看rpcbind 端口

netstat -lntup | grep rpcbind 默认端口 111
netstat -lntup | grep 111
rpcinfo -p localhost 查看rpclist
配置nfs配置文件(/etc/exports ] 默认是空的)

vim /etc/exports
示例:
/data 168.1.1.1(rw,sync,all_squash)
/data 168.1.1.*(rw,sync,all_squash)
sync:写入磁盘
使配置生效


exportfs -r

注:配置文件说明:

/opt/test 为共享目录

192.168.1.0/24 可以为一个网段,一个IP,也可以是域名,域名支持通配符 如: *.qq.com

rw:read-write,可读写;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,可以在此处自行设定。

anongid:匿名用户的GID值。
查看有什么启动命令 /etc/init.d/nfs 会输出命令集合
showmount -e 127.0.0.1 查看挂载的目录
关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
客户端需要启动 rpc

客户端也需要安装rpcbind, 建议nfs一起安装,便于使用showmount命令

centos6.8 /etc/init.d/rpcbind start
centos7 systemctl start rpcbind.service

或者将启动命令放入 /etc/rc.local 或者 使用 echo “/etc/init.d/rpcbind start” >> /etc/rc.local

客户端挂载目录 mount -t nfs 10.0.0.7:/data /mnt
echo “/bin/mount -t nfs 10.0..0.1:/data /mnt” >> /etc/rc.local
nfs不能向服务端写数据,是权限的问题

cat /var/lib/nfs/etab

/script 192.168.42.*(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

/data 192.168.42.*(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

[root@nfs-1 data]# grep 65534 /etc/passwd nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

chown -R nfsnobody /data

Mac系统下安装jupyter notebook

u22e阅读(2694)

先说一下环境 :

MAC台式机

python:mac下自带Python 2.7.10

1.先升级了pip安装工具:sudo python -m pip install –upgrade –force pip

2.安装setuptools 工具:sudo pip install setuptools==33.1.1

3.安装 Python-dateutil:sudo pip install python-dateutil==2.2

4.安装six:sudo pip install –ignore-installed six

5.安装jupyter:sudo install jupyter

启动命令:直接在终端输入jupyter notebook

折腾了半天,才搞好,以上命令是在安装的时候遇到各种问题时使用的,下面写记录一下遇到的问题 以及对应的解决办法

1.ImportError: cannot import name _thread  报这个错误 解决办法:

sudo pip uninstall python-dateutil
sudo pip install python-dateutil==2.2
2.File “/Library/Python/2.7/site-packages/dateutil/tz/_common.py”, line 2, in <module>

from six.moves import _thread
ImportError: cannot import name _thread

解决办法:安装six 命令再上方

解决了上面的问题 启动的时候 还是会报错这是个顽固的错误:

File “/Library/Python/2.7/site-packages/packaging/requirements.py”, line 59, in <module>

MARKER_EXPR = originalTextFor(MARKER_EXPR())(“marker”)

TypeError: __call__() takes exactly 2 arguments (1 given)

解决办法:根据错误信息直接找到路径中的文件,打开文件将 59 行中的函数修改

59:#MARKER_EXPR = originalTextFor(MARKER_EXPR())(“marker”)
60:MARKER_EXPR = originalTextFor(MARKER_EXPR(“marker”))

修改好之后直接保存文件 再次运行jupyter notebook 命令 即可启动jupyter

关于six那个问题,还有一点 需要删除我们默认路径下的six 否则 即使更新成功了 也不会使用最新的six

方法:先查看一下默认的six路径

import six

print six.__file__

然后删除:sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.*

最后再使用上方的命令安装更新six

方程式又一波大规模 0day 攻击泄漏,微软这次要血崩

u22e阅读(2679)

一大早起床是不是觉得阳光明媚岁月静好?然而网络空间刚刚诞生了一波核弹级爆炸!Shadow Brokers再次泄露出一份震惊世界的机密文档,其中包含了多个精美的 Windows 远程漏洞利用工具,可以覆盖全球 70% 的 Windows 服务器,一夜之间所有Windows服务器几乎全线暴露在危险之中,任何人都可以直接下载并远程攻击利用,考虑到国内不少高校、政府、国企甚至还有一些互联网公司还在使用 Windows 服务器,这次事件影响力堪称网络大地震。
目前已知受影响的 Windows 版本包括但不限于:Windows NT,Windows 2000(没错,古董也支持)、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
故事还要从一年前说起,2016 年 8 月有一个 “Shadow Brokers” 的黑客组织号称入侵了方程式组织窃取了大量机密文件,并将部分文件公开到了互联网上,方程式(Equation Group)据称是 NSA(美国国家安全局)下属的黑客组织,有着极高的技术手段。这部分被公开的文件包括不少隐蔽的地下的黑客工具。另外 “Shadow Brokers” 还保留了部分文件,打算以公开拍卖的形式出售给出价最高的竞价者,“Shadow Brokers” 预期的价格是 100 万比特币(价值接近5亿mei’y)。这一切听起来难以置信,以至于当时有不少安全专家对此事件保持怀疑态度,“Shadow Brokers” 的拍卖也因此一直没有成功。
北京时间 2017 年 4 月 14 日晚,“Shadow Brokers” 终于忍不住了,在推特上放出了他们当时保留的部分文件,解压密码是 “Reeeeeeeeeeeeeee”。
这次的文件有三个目录,分别为“Windows”、“Swift” 和 “OddJob”,包含一堆令人震撼的黑客工具(我们挑几个重要的列举如下):
EXPLODINGCAN 是 IIS 6.0 远程漏洞利用工具
ETERNALROMANCE 是 SMB1 的重量级利用,可以攻击开放了 445 端口的 Windows XP, 2003, Vista, 7, Windows 8, 2008, 2008 R2 并提升至系统权限。
除此之外 ERRATICGOPHER 、ETERNALBLUE 、ETERNALSYNERGY 、ETERNALCHAMPION 、EDUCATEDSCHOLAR、 EMERALDTHREAD 等都是 SMB 漏洞利用程序,可以攻击开放了 445 端口的 Windows 机器。
ESTEEMAUDIT 是 RDP 服务的远程漏洞利用工具,可以攻击开放了3389 端口的 Windows 机器。
FUZZBUNCH 是一个类似 MetaSploit 的漏洞利用平台。
ODDJOB 是无法被杀毒软件检测的 Rootkit 利用工具。
ECLIPSEDWING 是 Windows 服务器的远程漏洞利用工具。
ESKIMOROLL 是 Kerberos 的漏洞利用攻击,可以攻击 Windows 2000/2003/2008/2008 R2 的域控制器。
不放不要紧,放出来吓坏了一众小伙伴。这些文件包含多个 Windows 神洞的利用工具,只要 Windows 服务器开了135、445、3389 其中的端口之一,有很大概率可以直接被攻击,这相比于当年的 MS08-067 漏洞有过之而无不及啊,如此神洞已经好久没有再江湖上出现过了。
掏出 Exp 试了一波,果然是一打一个准,这些工具的截图如下:




除 Windows 以外,“Shadow Brokers” 泄露的数据还显示方程式攻击了中东一些使用了 Swift 银行结算系统的银行。

缓解措施
所有 Windows 服务器、个人电脑,包括 XP/2003/Win7/Win8,Win 10 最好也不要漏过,全部使用防火墙过滤/关闭 137、139、445端口;对于 3389 远程登录,如果不想关闭的话,至少要关闭智能卡登录功能。
剩下的就是请稳定好情绪,坐等微软出补丁。

CentOS系统的启动流程

u22e阅读(2792)

1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)

2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;
  (1) 为硬盘新建两个主分区;并为其安装grub;
  (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;
  (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件;
  (4) 为grub提供配置文件;
  (5) 将新的硬盘设置为第一启动项并能够正常启动目标主机;

~]# fdisk /dev/sdb
~]# mke2fs -t ext4 /dev/sdb{1,2}
~]# mount /dev/sdb1 /mnt
~]# grub-install --root-directory=/mnt /dev/sdb
~]# cp /boot/initramfs-2.6.32-504.el6.i686.img /mnt/initramfs
~]# cp /boot/vmlinuz-2.6.32-504.el6.i686 /mnt/vmlinuz
~]# vim /mnt/boot/grub/grub.conf
default=0
timeout=5
title CentOS6(test)
root (hd0,0)
kernel /vmlinuz ro root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs
~]# umount /dev/sdb1
~]# mount /dev/sdb2 /mnt
~]# mkdir -p /mnt/{bin,sbin,lib,lib64,etc,home,root,media,mnt,dev,tmp}
~]# mkdir -p /mnt/{usr/{bin,sbin,lib,lib64},var{lib,lib64,log,local,cache},proc,sys,selinux}
~]# cp /bin/{bash,ls,cat} /mnt/bin
~]# cp `ldd /bin/{bash,ls,cat}|grep -eo "/lib.*[[:space:]]"| sort -u` /mnt/lib
~]# sync
~]# init 6
重启后进入BIOS设置 调整硬盘启动顺序后保存退出。

3、制作一个kickstart文件以及一个引导镜像。描述其过程

可以直接手动编辑或使用创建工具在桌面模式下用system-config-kickstart (CentOS 6)来创建ks.cfg
#命令段
firewall --disabled                                    //禁用防火墙
install                                                //执行新安装
cdrom                                                  //用光盘安装
rootpw --iscrypted $1$TxkJ7T6B$obLELgEGcn0uzgA3QTAPl/  //管理员加密密码
auth  --useshadow  --passalgo=sha512                   //屏蔽密码算法
graphical                                              //安装图形环境
firstboot --disable                                    //首次引导禁用代理
keyboard us                                            //安装键盘类型
lang en_US                                             //默认语言
selinux --enforcing                                    //激活selinux
logging --level=info                                   //信息等级
timezone  Asia/Hong_Kong                               //系统时区
bootloader --location=mbr                              //在MBR上安装引导程序
clearpart --all                                        //删除所有现存分区  
part /boot --fstype="ext4" --size=500                  //分区挂载
part / --fstype="ext4" --size=10000
#脚本段
%pre                                                   //安装前脚本
echo "start"
%end
%post                                                  //安装后脚本
echo "end"
%end
#程序包段
%packages
@chinese-support                                       //中文支持
@development                                           //开发工具
@graphical-admin-tools                                 //图形化工具
@remote-desktop-clients                                //远程桌面客户端
git
-ibus-table-cangjie
-ibus-table-erbi
-ibus-table-wubi
%end

4、写一个脚本
  (1) 能接受四个参数:start, stop, restart, status
   start: 输出“starting 脚本名 finished.”
   …
  (2) 其它任意参数,均报错退出;

#!/bin/bash
#
cat << EOF
Please make a choice!
start
stop
restart
status
======================
EOF

read -p "Your choice: " choice

case $choice in
    
    start)
        echo "starting script $choice finished."
    ;;
    
    stop)
        echo "starting script $choice finished."
    ;;
    
    restart)
        echo "starting script $choice finished."
    ;;
    
    status)
        echo "starting script $choice finished."
    ;;
    
    *)
        exit 1
esac

5、写一个脚本,判断给定的用户是否登录了当前系统;
  (1) 如果登录了,则显示用户登录,脚本终止;
  (2) 每3秒钟,查看一次用户是否登录;

#!/bin/bash
#
read -p "Give a username: " username

while true; do
    if who | grep "^$username\>" &> /dev/null; then
        break
    fi
    sleep 3
done

echo "$username logged on"

6、写一个脚本,显示用户选定要查看的信息;
   cpu) display cpu info
   mem) display memory info
   disk) display disk info
   quit) quit
   非此四项选择,则提示错误,并要求用户重新选择,只到其给出正确的选择为止;

#!/bin/bash
#
cat << EOF
cpu) display cpu information
mem) display memory infomation
disk) display disks information
quit) quit
===============================
EOF

read -p "Enter your option: " option

while [ "$option" != "cpu" -a "$option" != "mem" -a "$option" != "disk" -a "$option" != "quit" ]; do
    echo "cpu, mem, disk, quit"
    read -p "Enter your option again: " option
done

if [ "$option" == "cpu" ]; then
    lscpu
elif [ "$option" == "mem" ]; then
    free -m
elif [ "$option" == "disk" ]; then
    fdisk -l /dev/[hs]d[a-z]
else
    echo "quit"
    exit 0
fi

7、写一个脚本
  (1) 用函数实现返回一个用户的UID和SHELL;用户名通过参数传递而来;
  (2) 提示用户输入一个用户名或输入“quit”退出;
    当输入的是用户名,则调用函数显示用户信息;
    当用户输入quit,则退出脚本;进一步地:显示键入的用户相关信息后,再次提醒输出用户名或quit:

#!/bin/bash
#
userinfo() {
    local user=$1
    awk -F: '/^'"$user"'/{printf "%s:%s:%s\n",$1,$3,$NF}' /etc/passwd
}

while true; do
    read -p "Please enter a username or "quit": " choice
    if [[ "$choice" == "quit" ]]; then
        break   
    else
        userinfo $choice
    fi
done

exit 0

 

使用阿里云Docker镜像加速

u22e阅读(3381)

使用docker官方的docker hub速度太慢,正好看到国内阿里云也做了docker镜像,于是想试试看阿里云的docker源。先附上 阿里云docker hub地址 .新用户需要注册成为开发者。打开 http://dev.aliyun.com/search.html->使用阿里云账号登录阿里云的docker hub->进入管理中心按照要求注册就ok,注册成功之后,进入 管理中心 ,首次登录会让用户设置密码。然后就会看到如下页面:

阿里云会给每个用户分配一个加速地址,我的加速地址为 https://2h3po24q.mirror.aliyuncs.com
然后对于不同的系统、版本,在设置加速地址上都有些不同。如下

对于Ubuntu用户
//ubuntu下docker一键安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh –
//配置Docker加速器

//如果系统是 Ubuntu 12.04 14.04,Docker 1.9 以上

echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=https://2h3po24q.mirror.aliyuncs.com\”” | sudo tee -a /etc/default/docker
sudo service docker restart

//如果您的系统是 Ubuntu 15.04 16.04,Docker 1.9 以上

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/mirror.conf <<-‘EOF’
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// –registry-mirror=https://2h3po24q.mirror.aliyuncs.com
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

对于Centos用户

//centos下docker一键安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh –
//配置Docker加速器

//系统要求 CentOS 7 以上,Docker 1.9 以上。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i “s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon –registry-mirror=https://2h3po24q.mirror.aliyuncs.com|g” /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart

对于Windows用户

//推荐安装Docker Toolbox。
//Toolbox的介绍和帮助: mirrors.aliyun.com/help/docker-toolbox
//Windows系统的安装文件目录: mirrors.aliyun.com/docker-toolbox/windows

# 创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。
docker-machine create –engine-registry-mirror=https://2h3po24q.mirror.aliyuncs.com -d virtualbox default

# 查看机器的环境配置,并配置到本地。然后通过Docker客户端访问Docker服务。
docker-machine env default
eval “$(docker-machine env default)”
docker info

对于Mac用户

//推荐安装Docker Toolbox。
//Toolbox的介绍和帮助: mirrors.aliyun.com/help/docker-toolbox
//Mac系统的安装文件目录: mirrors.aliyun.com/docker-toolbox/mac

# 创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。
docker-machine create –engine-registry-mirror=https://2h3po24q.mirror.aliyuncs.com -d virtualbox default

# 查看机器的环境配置,并配置到本地。然后通过Docker客户端访问Docker服务。
docker-machine env default
eval “$(docker-machine env default)”
docker info

Ubuntu 14.04 更换阿里云源

u22e阅读(3299)

Ubuntu 14.04 更换阿里云源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份
sudo vim /etc/apt/sources.list #修改
sudo apt-get update #更新列表

阿里云源

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

linux下怎么退出telnet

u22e阅读(2250)

在运维过程中,常常会telnet某个ip端口,如果 能telnet通,怎么退出呢 ?
telnet 63.172.25.18 6463 回车
Trying 63.172.25.18…
Connected to 63.172.25.18 (63.172.25.18).
Escape character is ‘^]’.

1、ctrl + ] 回车

telnet>

2、? 回车

close close current connection
logout forcibly logout remote user and close the connection
display display operating parameters
mode try to enter line or character mode (‘mode ?’ for more)
open connect to a site
quit exit telnet
send transmit special characters (‘send ?’ for more)
set set operating parameters (‘set ?’ for more)
unset unset operating parameters (‘unset ?’ for more)
status print status information
toggle toggle operating parameters (‘toggle ?’ for more)
slc change state of special charaters (‘slc ?’ for more)
auth turn on (off) authentication (‘auth ?’ for more)
encrypt turn on (off) encryption (‘encrypt ?’ for more)
forward turn on (off) credential forwarding (‘forward ?’ for more)
z suspend telnet
! invoke a subshell
environ change environment variables (‘environ ?’ for more)
? print help information

3、quit 回车

Connection closed.

Linux系统下安装rz/sz命令及使用说明

u22e阅读(5132)

1.软件安装
1)编译安装
root 账号登陆后,依次执行以下命令:
cd /tmp
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
./configure && make && make install
上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
2)yum安装
root 账号登陆后执行以下命令:
yum install -y lrzsz
2.用说明
sz命令发送文件到本地:
# sz filename
rz命令本地上传文件到服务器:
# rz
执行该命令后,在弹出框中选择要上传的文件即可。
说明:打开SecureCRT软件 -> Options -> session options -> X/Y/Zmodem 下可以设置上传和下载的目录。