內容選單標籤

2017年4月25日 星期二

ch14 系統服務與排程



服務 service 是背景執行的程式,通常會占用一個埠號,等待外部連線要求。Linux的服務通稱為Daemon,所以其服務名稱通常以d 結尾,如:httpd。
Linux 以新一代系統服務管理 systemd 取代 init。
常見系統管理使用的服務:
atd.service                           //一次性的工作排程服務
crond.service                      //週期性的工作排程服務
NetworkManager.service   //動態網路連線設定管理
network.target                    //固定式網路管理服務
sysinit.target                      //系統啟動
quotacheck.service            //磁碟配額檢查服務
syslog.service                    //系統日誌管理服務
sendmail.service               //電子郵件伺服器服務
smartd.service                  //磁碟健康狀態回報服務
sshd.service                      //加密遠端登入服務
httpd.service                     //網頁伺服器服務
cups.socket                      //列印伺服器服務

服務分為:
.service
在背景持續執行並等待的服務,能快速提供服務,但較耗費系統資源。適合快速且連線數龐大的服務,如:httpd.service

.socket
通訊埠有客戶端連線時才啟動的服務,速度相對較慢,但不耗費系統資源。適合不須快速且連線數較少的服務,如:cups.socket


# ls /usr/lib/systemd/          //此目錄放置的是systemd執行檔
catalog                systemd-coredump           systemd-shutdown
ntp-units.d            systemd-cryptsetup         systemd-shutdownd
...


//此目錄放置的是系統重要的Unit服務與Target設定檔及與系統啟動相關的服務
# ls /usr/lib/systemd/system    
arp-ethers.service                      remote-fs-pre.target
auditd.service                          remote-fs.target
...

systemctl   [選項]   命令   服務對象名稱 

常用命令:
start                        啟動服務
stop                        停止服務
restart                     重啟服務
enable                     開機啟動
disable                    開機不啟動
status                      服務目前狀態



-------------------------------------------------------

Linux 系統服務類型:
1. Standalone獨立服務
無論有無客戶要求,常駐系統背景,占用一定程度的系統資源,目的是為了在最短時間提       供客戶要求。如:httpd、sendmail、named...  

2. xinetd總管服務
有些服務不是常有客戶要求,就可以將這些服務註冊在一個總管型的服務xinetd。只要該服   務的port有客戶提出要求,xinetd這個常駐服務在負責將該服務啟動,當客戶要求處理完畢,再將該服務從系統中移除,以保系統資源的最佳狀況。如:telnet、tak...
CentOS預設已不安裝 xinetd套件。




-------------------------------------------------------
系統排程
CentOS安裝完成後,開機會自動啟動 crond 服務,crond負責每分鐘讀取排程設定檔:
/etc/crontab

# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |    .------------- hour (0 - 23)
# |    |   .---------- day of month (1 - 31)
# |    |   |   .------- month (1 - 12) OR jan,feb,mar,apr ...
# |    |   |   |   .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |    |   |   |   |
# *  *  *  *  * user-name  command to be executed







2017年4月19日 星期三

Excel vba



20101版本啟用vba
檔案-->選項-->自訂功能區-->V開發人員







Private Sub ComboBox2_Change()

If (ComboBox2.Value = "新案" Or ComboBox2.Value = "檢卷") Then TextBox4.Text = "事務官" Else TextBox4.Text = "書記官"
If ComboBox2.Value = "新案" Then TextBox6.Text = TextBox3.Text Else TextBox6.Text = ""

End Sub

--------------------------------------------------------------------------

Private Sub CommandButton1_Click()

Range("B1").Select
Selection.End(xlDown).Select

If (TextBox6.Text) <> "" Then Sheets("案號管理").Range("A" & ActiveCell.Row + 1).Value = TextBox6.Value

Sheets("案號管理").Range("B" & ActiveCell.Row + 1).Value = TextBox1.Value
Sheets("案號管理").Range("C" & ActiveCell.Row + 1).Value = ComboBox1.Value
Sheets("案號管理").Range("D" & ActiveCell.Row + 1).Value = TextBox2.Value
Sheets("案號管理").Range("E" & ActiveCell.Row + 1).Value = ComboBox2.Value
Sheets("案號管理").Range("F" & ActiveCell.Row + 1).Value = TextBox3.Value

Sheets("案號管理").Range("G" & ActiveCell.Row + 1).Value = TextBox4.Value

Sheets("案號管理").Range("H" & ActiveCell.Row + 1).Value = TextBox5.Value


Selection.End(xlDown).Select

CommandButton1.Enabled = False
CommandButton2.Enabled = False

End Sub


--------------------------------------------------------------------------

Private Sub CommandButton2_Click()
       ActiveCell.Offset(0, 3).Value = ComboBox2.Value
       ActiveCell.Offset(0, 4).Value = TextBox3.Value
       ActiveCell.Offset(0, 5).Value = TextBox4.Value
       ActiveCell.Offset(0, 6).Value = TextBox5.Value
       ActiveCell.Offset(0, -1).Value = TextBox6.Value
       CommandButton1.Enabled = False
       CommandButton2.Enabled = False

End Sub


--------------------------------------------------------------------------

Private Sub CommandButton3_Click()

ComboBox1.Value = ""
TextBox2.Value = ""
ComboBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""

TextBox1.SetFocus

End Sub

--------------------------------------------------------------------------




Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Range("B2").Select
Dim i As Integer
i = 0

Do While Not (ActiveCell.Offset(i, 0).Value = "")
   
    If (ActiveCell.Offset(i, 0).Value = Val(TextBox1.Value) And ActiveCell.Offset(i, 1).Value = ComboBox1.Value And ActiveCell.Offset(i, 2).Value = Val(TextBox2.Value)) Then
     
       ComboBox2.Value = ActiveCell.Offset(i, 3).Value
       TextBox3.Value = ActiveCell.Offset(i, 4).Value
       TextBox4.Value = ActiveCell.Offset(i, 5).Value
       TextBox5.Value = ActiveCell.Offset(i, 6).Value
       TextBox6.Value = ActiveCell.Offset(i, -1).Value
     
       CommandButton1.Enabled = False
       CommandButton2.Enabled = True
     
       ActiveCell.Offset(i, 0).Select
     

        Exit Do
    Else
        i = i + 1
    End If
   
    CommandButton1.Enabled = True
    CommandButton2.Enabled = False

Loop
End Sub




--------------------------------------------------------------------------


Private Sub TextBox3_Change()

If ComboBox2.Value = "新案" Then TextBox6.Text = TextBox3.Text Else TextBox6.Text = ""

End Sub



--------------------------------------------------------------------------



Private Sub UserForm_Activate()
TextBox1.Text = Year(Date) - 1911
CommandButton1.Enabled = False
CommandButton2.Enabled = False

Dim i As Integer
i = 1
Do While Not (Sheets("dataSource").Range("A" & i) = "")
     ComboBox1.AddItem (Sheets("dataSource").Range("A" & i))
    i = i + 1
Loop


Dim j As Integer
j = 1
Do While Not (Sheets("dataSource").Range("C" & j) = "")
     ComboBox2.AddItem (Sheets("dataSource").Range("C" & j))
    j = j + 1
Loop

End Sub


--------------------------------------------------------------------------

2017年4月18日 星期二

ch13 網路指令與管理



CentOS兩種網路設定模式:
1. NetworkManager 適用動態網路設定
    如使用筆記型電腦上網方式因位置而不同,NetworkManager工具提供各類場合變換連線設       定功能。CentOS7預設啟動NetworkManager服務,可用systemctl指令將其換為network服務。


# systemctl disable NetworkManager.service      //開機不啟用

# systemctl stop NetworkManager.service          //停止服務

# chkconfig network on                                       // 開機啟用network

# systemctl start network.service                         // 啟動network

# systemctl status network                                   //確認network服務執行中
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network)
   Active: active (exited) since 二 2017-04-18 14:15:41 CST; 11min ago
...


2. network 適用固定位址的主機
Linuxn伺服器主機大都以network服務管理網卡,此服務位在 /etc/init.d/network,他是執行腳本,可啟動或停止系統網路設備。而network服務會讀取系統網路組態目錄下的設定檔

# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE="Ethernet"
BOOTPROTO="none"                                          //自動取得IP則為dhcp,固定IP則是static或none
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"                                                   //是否支援ipv6
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="0f512752-90bd-45ed-892c-3f478f19f84d"
DEVICE="eno16777736"                                                 //設備名稱
ONBOOT="yes"                                                               //開機是否啟動此網路卡
IPADDR="163.16.63.191"
PREFIX="24"
GATEWAY="163.16.63.254"
DNS1="163.16.1.23"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"





-------------------------------------------ifconfig命令設定網路卡
# ifconfig eno16777736
...
inet 163.16.63.191                   //IP 位址
ether 00:0c:29:c1:31:fa           //MAC位址
RX packets 308907  bytes      //已接收封包數
TX packets 8504  bytes           //已傳送封包數
...collisions 0                           //封包碰撞累計次數


# ifconfig eno16777736 up          //啟動網路卡
# ifconfig eno16777736 down     //停止網路卡
# ifconfig eno16777736 192.168.2.30 netmask 255.255.255.0        //設定網卡IP與netmask

--------------------------------------------------ip工具
ip 命令所做的設定結果不會存至系統組態檔中,所以重開後會回復原系統儲存的組態,若要實際修改系統的網路設定,可使用setup工具或修改系統網路設定檔。

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    ...
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    ...
//UP設備已啟動   LOOPBACK是迴路設備   BROADCAST廣播設備
  MULTICAST可同時將封包傳送到其它系統網路


# ip -s link show eno16777736      // -s 設備統計資料   link 省略IP位址相關資訊
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:c1:31:fa brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1132284    13471    0       817     0       0
    TX: bytes  packets  errors  dropped carrier collsns
    19107      122      0       0       0       0

//RX 接收 TX傳送 統計資料   
  bytes 接收或傳送位元組總數 
  packets 接收或傳送封包總數
  errors 接收或傳送錯誤總數
  dropped 因缺乏資源而被放棄的封包總數
  carrier 接收者溢位導致放棄封包的總數
  mcast 已接收多重廣播封包總數
  overrun 因失去載波,導致連結媒體失敗的總次數
  collsns 碰撞事件總次數
       
# ip address add 10.0.0.2/24 brd + dev eth0      //指派10.0.0.2位址給eth0設備                                                                                                                //brd +選項會依網路遮罩,自動設定廣播位址
# ip address show dev eno16777736
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:c1:31:fa brd ff:ff:ff:ff:ff:ff
    inet 163.16.63.191/24 brd 163.16.63.255 scope global eno16777736
       valid_lft forever preferred_lft forever
    inet 10.0.0.2/24 brd 10.0.0.255 scope global eno16777736
...

# ip address del 10.0.0.2/24 dev eno16777736      //移除設備IP位址

# ip link set eno16777736 up      //啟用網路設備   down 停用




----------------------------------
網路測試工具

# ping 168.95.1.1 -c 5      //-c 數字   只送出一定次數的ICMP封包
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=1 ttl=247 time=3.41 ms
...


# traceroute 168.95.1.1      //了解伺服器目的主機之間,經過所有節點的連線狀態
traceroute to 168.95.1.1 (168.95.1.1), 30 hops max, 60 byte packets
 1  163.16.63.254 (163.16.63.254)  0.352 ms  0.430 ms  0.376 ms
 2  10.163.17.125 (10.163.17.125)  1.519 ms  1.479 ms  1.404 ms
...


# netstat                           //主機上所有網路連接資訊
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0     52 163.16.63.191:ssh       163.16.63.190:59969     ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  5      [ ]         DGRAM                    8962     /run/systemd/journal/socket
unix  10     [ ]         DGRAM                    8964     /dev/log
...

//-n 不使用名稱改用埠號顯示 
   -t  只列出TCP協定封包的連線資訊
   -u 只列出UDP協定封包的連線資訊
   -l  只列出正在傾聽的連線資訊
   -p  列出連線是由哪個行程處理的








2017年4月16日 星期日

Ch11 常用工具指令


//目錄空間使用量
# du /var

# du -sh /var      //-s 顯示目錄總用量,不顯示子目錄,-h 以磁碟單位顯示,MB、GB
100M    /var


# df
檔案系統                 1K-區段           已用       可用           已用%   掛載點
/dev/mapper/centos-root 18307072  944900   17362172    6%           /
devtmpfs                         923900      0             923900        0%           /dev
....


# df -h
檔案系統                          容量     已用      可用    已用%   掛載點
/dev/mapper/centos-root   18G      923M     17G     6%          /
devtmpfs                           903M    0            903M   0%         /dev



# wc anaconda-ks.cfg              //統計檔案行數、字數、大小 byte
  39   96 1035 anaconda-ks.cfg



# echo "ABCDEFG" | tr ABC xyx      //取代
xyxDEFG

# echo "ABCDEFG" | tr -d 'AB'         //-d 刪除
CDEFG



# ping 168.95.1.1      //送出ICMP通訊協定的ECHO_REQUEST封包至特定主機
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=1 ttl=247 time=2.69 ms
...


# yum install traceroute
# traceroute 168.95.1.1      //列出ICMP封包從本機到目的主機,經過的路由器IP


# yum install net-tools      // ifconfig、netstat


# yum install bind-utils     //nslookup、dig
# nslookup 168.95.1.1

# dig 168.95.1.1


# hostname
F303.centos

# cat /etc/hostname
F303.centos






2017年4月13日 星期四

ch9 系統管理工具

FirewallD

//FirewallD動態設定防火牆,不須重啟即可套用,亦提供多個zone供選擇設定,對於經常更換使用地點的筆記型電腦更加方便。
zone可針對主機位於什麼環境而建立防火牆的處理原則。

# firewall-cmd --state   //目前是否執行中

running

# firewall-cmd --get-active-zone   //列出目前已設定的 zone
public zone
  interfaces: eno16777736

# firewall-cmd --zone=public --list-all   //列出zone的某一個網路介面,詳細設定
public (default, active)
  interfaces: eno16777736
  sources:
  services: dhcpv6-client ssh                   //允許的服務、埠號
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

# firewall-cmd --get-zones                                                     //列出所有可選擇的zone,分別代表
block dmz drop external home internal public trusted work //不同地點的防火牆設定原則。

public:公開的場所,不信任網域內所有連線,只有被允許的連線才能進入,一般只要設定這裡就可以了
external:公開的場所,應用在IP是NAT的網路
dmz:(DemilitarizedZone)非軍事區,允許對外連線,內部網路只有允許的才可以連線進來
work:公司、工作的環境,只有被允許的連線才能進入
home:家庭環境,只有被允許的連線才能進入
internal:內部網路,應用在NAT設定時的對內網路,只有被允許的連線才能進入
trusted:接受所有的連線
drop:任何進入incoming的封包全部丟棄,只有往外outgoing的連線是允許的
block:任何進入的封包全部拒絕,並以icmp回覆對方,只有往外的連線是允許的

# firewall-cmd --permanent --zone=home --change-interface=eno1677736   //--permanent所作變更
success                                                                       //寫入設定檔,否則重啟FirewallD後即無效。


# firewall-cmd --reload
success

# firewall-cmd --get-active-zone
home
  interfaces: eno1677736
public
  interfaces: eno16777736

----------------------------------------service and port
//service在FirewallD中代表一個或多個port所組成的一個服務名稱
# firewall-cmd --get-services   //列出所有可使用的service
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target 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 rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https


# ls /usr/lib/firewalld/services   //這些service定義檔所在目錄
amanda-client.xml        iscsi-target.xml  pop3s.xml  dns.xml ....


# cat /usr/lib/firewalld/services/dns.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>DNS</short>
  <description>The Domain Name System (DNS) is used to provide and request host and domain names. Enable this option, if you plan to provide a domain name service (e.g. with bind).</description>
  <port protocol="tcp" port="53"/>                      //dns service包含2個協定或port
  <port protocol="udp" port="53"/>
</service>


# firewall-cmd --zone=public --add-service=dns   //加入service
success


# firewall-cmd --zone=public --add-port=9958/tcp   //加入port
success


[root@F303 ~]# firewall-cmd --zone=public --list-all
public (default, active)
  interfaces: eno16777736
  sources:
  services: dhcpv6-client dns ssh
  ports: 9958/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:



---------------------------------壓縮檔案-備份

# ls
anaconda-ks.cfg  testfile
# gzip testfile      //壓縮
# ls
anaconda-ks.cfg  testfile.gz      //原檔會被壓縮檔取代

# gunzip testfile.gz      //解壓縮

# ls
anaconda-ks.cfg  testfile


# ls
anaconda-ks.cfg  f1  f2  f3
# tar -czvf f.tar.gz f*      //c:產生包裹檔  z:壓縮功能zip v:觀看指令進度 f:指定目的檔名
f1
f2
f3
# ls
anaconda-ks.cfg  f1  f2  f3  f.tar.gz

# tar -xzvf f.tar.gz      //x:解開包裹檔



---------------------------------設定系統時間

Linux時間分為
1.硬體時間:CMOS負責
2.系統時間:作業系統負責。開機時,系統時間讀取硬體時間後,便由作業系統管理。


# yum install ntp
# ntpdate watch.stdtime.gov.tw      //連接至NTP伺服器校時
14 Apr 10:57:54 ntpdate[18262]: no server suitable for synchronization found
# hwclock -w      //系統時間寫入硬體時間
# hwclock -r      
西元2017年04月14日 (週五) 11時00分53秒  -0.401824 秒



---------------------------------系統排程工作

Linux預設會啟動crond服務,持續檢視系統的排程工作與時間。

# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |    .------------- hour (0 - 23)
# |    |   .---------- day of month (1 - 31)
# |    |   |   .------- month (1 - 12) OR jan,feb,mar,apr ...
# |    |   |   |   .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |    |   |   |   |
# *  *  *  *  * user-name  command to be executed
 29  9 15 8  *      //8月15日早上9點29分
  0 17 10 *  *      //每月10日下午5時
  0   4   * *  6      //每周六早上4時

2016年10月31日 星期一

CentOs7-1511-練習

0、修改主機BIOS
Host主機i3-6100   3.7Ghz   3M Cache   2核心    DDR4 4G

//VMare 無法使用 修改Bios
UEFI BIOS Utility Version 0604 x64
Advanced Mode --> Advanced --> CPU configuration -->
intel Virtulization Techology -->Enabled


1、CentOs7升級與補強
# yum install lftp

//下載自動修正執行檔:
# lftp ftp.kh.edu.tw
lftp ftp.kh.edu.tw:~> cd pub/APPL/yum/CentOS7/
cd 成功,目前的目錄為 /pub/APPL/yum/CentOS7
lftp ftp.kh.edu.tw:/pub/APPL/yum/CentOS7> ls
-r--r--r--   1 ftp      ftp          1653 Aug 11  2014 CentOS-Base.repo
-r--r--r--   1 ftp      ftp           446 Jan 22  2015 check_reboot.sh
-r--r--r--   1 ftp      ftp           945 Oct  3  2014 epel.repo
-r--r--r--   1 ftp      ftp          1044 Aug 12  2014 epel-testing.repo
-r--r--r--   1 ftp      ftp          1309 Oct 10 08:00 fix-yum-CentOS7.sh
-r--r--r--   1 ftp      ftp           294 Oct 18  2014 get-xrdp.sh

-r--r--r--   1 ftp      ftp          1272 Oct  3  2014 README.CentOS7

lftp ftp.kh.edu.tw:/pub/APPL/yum/CentOS7> get fix-yum-CentOS7.sh

lftp ftp.kh.edu.tw:/pub/APPL/yum/CentOS7> quit

[root@F303 ~]# ls

anaconda-ks.cfg  fix-yum-CentOS7.sh

# chmod 755 fix-yum-CentOS7.sh

[root@F303 ~]# ls -l
總計 8
-rw-------. 1 root root 1035 10月 31 09:45 anaconda-ks.cfg

-rwxr-xr-x. 1 root root 1309 10月 10 16:00 fix-yum-CentOS7.sh

# ./fix-yum-CentOS7.sh


# yum install wget
//因應rpmforge套件庫所有的mirror站都在國外,速度很慢
# vi /etc/yum.repos.d/rpmforge.repo

### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
proxy=http://open.kh.edu.tw:3128/

timeout=300

# yum -y update















常用指令:

練習1.
# ip addr show                                                //替代 ifconfig
# ip -s link show eno16777736

# ip link set eno16777736 up  //down:關閉  替代 ifconfig eh1 up 
# ip link show eno16777736
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:c1:31:fa brd ff:ff:ff:ff:ff:ff




# ip -4 route | column -t                                 //替代 route 顯示路由

# ip -6 route | column -t



# ip neighbr                                     //替代 arp 查詢 IP,MAC 對應

# tracepath 168.95.1.1      //替代traceroute / traceroute6















# ss -tunlp | column -t   //替代 netstat , t :TCP 連線   u:UDP連線                                                                l: Lisen











練習2.  systemd 基本管理方式
# systemctl --help

# systemctl list-units   //查詢目前啟動中服務 替代chkconfig -list
                                    //-a 查詢所有已啟動及未啟動的服務

# systemctl list-unit-files //以檔名顯示


# systemctl start vsftpd.service   //stop:停止服務  
# systemctl status vsftpd.service //替代chkconfig on|off servicename
● vsftpd.service - Vsftpd ftp daemon
   Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2016-11-25 10:17:00 CST; 1min 1s ago



# systemctl is-active vsftpd.service   //是否正常啟動
active


# systemctl enable vsftpd.service   //disable:開機不啟動
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

# systemctl is-enabled vsftpd.service
enabled





練習3. 檔案權限

# id   //檢視目前使用者uid 和 gid
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023



# ls -l kk.txt
-rw-r--r--. 1 root root 13 11月 25 16:06 kk.txt
# chmod 664 kk.txt   //r:4  w:2  x:1
# ls -l kk.txt
-rw-rw-r--. 1 root root 13 11月 25 16:06 kk.txt

# chmod 555 -R kk //-R: 同時設定資料夾kk,及包含檔案與子夾


 # ls -l
dr-xr-xr-x. 3 root root   15 11月 25 16:12 kk

# chown jack:users kk.txt   //chgrp 群組名稱 檔案或目錄
# ls -l
-rw-rw-r--. 1 jack users   13 11月 25 16:06 kk.txt
























2016年2月15日 星期一

CentOS7 寫c 程式

# vi myc.c
#include<stdio.h>
main(void){
printf("Hello World!\n");
}
.
.
.

# yum install -y gcc         //若沒gcc安裝
# gcc -o myc.out myc.c   //gcc 編譯
# ls
anaconda-ks.cfg   myc.c  myc.out

# ./myc.out                      //執行