Linux 基礎網路設定、工作排程、基礎的檔案壓縮與打包 (tar) 等等的應用!
帳號與權限的部份瞭解告一段落之後,讀者應該可以針對系統進行一些基礎的設定了,包括網路、日期時間等等。 同時,最好也能理解一下系統的備份工作,同時為了減少備份的容量,理解一下檔案的壓縮與打包也是重要的工作。 最終,當事情通通要交給系統獨自運作時,讀者對於工作排程的理解也不能少。
在更進一步管理系統前,先來整理一下系統的網路建置、日期與時間的修改、語系等相關的設定,讓系統更符合你的操作行為與環境。
網路設定是系統管理員主要負責的項目。一般來說,以伺服器的角度觀之,通常伺服器的網路都是固定的,大多使用手動的方式來設定好網路。 如果是以桌機的角度來看,則大多使用自動取得網路參數,亦即所謂的『 dhcp 』協定來自動處理。如果是台灣地區的一般民眾, 可能會有兩個主要的網路參數取得方式,一個是與電話線路結合,例如中華電信的 ADSL 或者光世代的撥接方式,一種則是透過與第四台的纜線結合。
CentOS 8 使用 Network Manager 這個服務來管理網路,同時提供一個名為 nmcli 的簡易指令,搭配 bash-completion 軟體,可以快速的使用 [tab] 按鍵配合,完成所有的任務。
系統上的所有網路界面都可以透過 ifconfig 這個指令來觀察,不過這個指令在某些系統上並不一定會提供。 因此,近來我們建議使用 ip link show 這個指令來查閱!方法如下:
[root@localhost ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:85:b1:54 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:b0:2f:5d brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:b0:2f:5d brd ff:ff:ff:ff:ff:ff
上述的 lo, ens3, virbr0, virbr0-nic 等等就是網路介面卡!系統實際上就是透過這些介面卡來連線到網路的。讀者應該要知道, 一張介面卡可以同時提供多個網路位址 (IP address),而利用這些介面卡來達成連線的方式就稱為網路連線代號。查詢網路連線代號的方式如下:
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens3 1eff13ae-e436-407c-bf67-ac0932bd1ed2 ethernet ens3
virbr0 efe9b94d-5d0c-4f93-b55c-4c4156c7aa9f bridge virbr0
讀者們應該要注意的是:
由於讀者們所操作的系統是本教材提供的複製品,對於您的環境來說,可能有些許的差異,因此,建議你應該要刪除 ens3 這個連線代號, 然後重建一次 ens3 比較妥當。刪除連線與建立連線的方式如下:
[root@localhost ~]# nmcli connection delete ens3 [root@localhost ~]# nmcli connection add con-name ens3 ifname ens3 type ethernet Connection 'ens3' (167e8cf0-05b5-4ea9-8685-7775441d5d04) successfully added. [root@localhost ~]# nmcli connection show NAME UUID TYPE DEVICE ens3 167e8cf0-05b5-4ea9-8685-7775441d5d04 ethernet ens3 virbr0 efe9b94d-5d0c-4f93-b55c-4c4156c7aa9f bridge virbr0
讀者會發現到 ens3 連線代號的 UUID 改變了,同時 DEVICE 會搭配到你的網路界面卡,此時系統就幫你建置好 ens3 這個連線代號。
目前大部分的系統在網路卡的命名上面已經不再使用過去的 eth0, eth1... 之類的命名方式,而是使用該介面卡的匯流排作為代號來命名。 因此,未來大家可能會常見到不同的名稱喔!
詳細的網路連線代號內容的觀察,可以這樣做:
[root@localhost ~]# nmcli connection show 連線名稱(con-name) [root@localhost ~]# nmcli connection show ens3 connection.id: ens3 connection.uuid: 167e8cf0-05b5-4ea9-8685-7775441d5d04 connection.stable-id: -- connection.type: 802-3-ethernet connection.interface-name: ens3 connection.autoconnect: 是 ....... ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: -- ipv4.routes: -- ....... ipv6.method: auto ipv6.dns: -- ipv6.dns-search: -- ipv6.dns-options: -- ipv6.dns-priority: 0 ipv6.addresses: -- ipv6.gateway: -- ipv6.routes: -- ....... IP4.ADDRESS[1]: 172.16.5.237/16 IP4.GATEWAY: 172.16.200.254 IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 172.16.200.254, mt = 100 IP4.ROUTE[2]: dst = 172.16.0.0/16, nh = 0.0.0.0, mt = 100 IP4.DNS[1]: 172.16.200.254 IP4.DOMAIN[1]: gocloud.vm DHCP4.OPTION[1]: dhcp_lease_time = 259200 DHCP4.OPTION[2]: dhcp_rebinding_time = 226800 ....... IP6.ADDRESS[1]: fe80::d9bf:d115:c5dc:248f/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100 IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
一般來說,輸出的資訊有小寫字元與大寫字元,小寫字元大多為『設定值』,大寫字元大多為『現在運作中的狀態資料』。 上表僅列出較為重要的資訊,包括有:
至於大寫字元裡頭,比較常見的重要項目:
基本上,如果看到 DHCP4.OPTION 之類的字樣,代表這個網路連線代號主要是透過『自動取得 IP 』的方式來處理的。
所謂的自動取得 IP 參數,代表使用 DHCP 伺服器來管理網路參數的給予,因此讀者的環境中應該具有 IP 分享器或其他提供 DHCP 功能的設備。 由於所有的設定均來自於 DHCP 服務,因此讀者僅須提供 ipv4.method 為自動 (auto) 即可。
[root@localhost ~]# nmcli connection modify ens3 ipv4.method auto [root@localhost ~]# nmcli connection up ens3 連線已成功啟用(D-Bus 啟用路徑:/org/freedesktop/NetworkManager/ActiveConnection/5)
上表『 nmcli connection up ens3 』代表使用設定值來重新啟動這個網路連線代號之意。
網路環境的設定主要由 ISP 來提供,假設你的系統所在的 ISP 告知你的網路設定如下:
上述 NN 為你的學號 (介於 1~254 之間的數值皆可),底下假設為 1 號時的情況, 讀者可以透過底下的方式來處理手動設定 IP 的方式:
[root@localhost ~]# nmcli connection modify ens3 \ > connection.autoconnect yes \ > ipv4.method manual \ > ipv4.addresses 172.16.50.1/16 \ > ipv4.gateway 172.16.200.254 \ > ipv4.dns 172.16.200.254 [root@localhost ~]# nmcli connection show ens3 ....... ipv4.method: manual ipv4.dns: 172.16.200.254 ipv4.dns-search: ipv4.addresses: 172.16.50.1/16 ipv4.gateway: 172.16.200.254 ....... [root@localhost ~]# nmcli connection up ens3
確認啟動網路之後,觀察一下最下方的大寫字樣的資料,是否正確顯示出跟你設定值相同的資訊?
[root@localhost ~]# nmcli connection show ens3
.......
IP4.ADDRESS[1]: 172.16.50.1/16
IP4.GATEWAY: 172.16.200.254
IP4.ROUTE[1]: dst = 172.16.0.0/16, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 172.16.200.254, mt = 100
IP4.DNS[1]: 172.16.200.254
.......
一般連線到 Internet 的伺服器應該都有一個主機名稱,主機名稱的觀察方式可以直接使用 hostname 來觀察, 如果是設定,則需要編寫 /etc/hostname 這個檔案。但如果手動編輯設定檔,通常都需要透過重新開機 (reboot) 來讓主機名稱生效。 為了解決這個 reboot 的問題, centos 提供了名為 hostnamectl 的指令來管理,假設主機名稱為 www.centos 時,可以這樣設定:
[root@localhost ~]# hostnamectl set-hostname www.centos [root@localhost ~]# hostnamectl Static hostname: www.centos Icon name: computer-vm Chassis: vm Machine ID: 502dbaaf2a074134909a59ef9ab651c1 Boot ID: b2952f724af0470cafc231c72afbcf9e Virtualization: kvm Operating System: CentOS Linux 8 (Core) CPE OS Name: cpe:/o:centos:centos:8 Kernel: Linux 4.18.0-147.el8.x86_64 Architecture: x86-64
這樣立刻設定好主機名稱,且可以不用重新開機。
地球上每個地區都有專屬於自己的時區,因此當你帶著 notebook 到不同時區的地點時,可能得要修訂自己的電腦時間才行。 修訂的方式可以使用 CentOS8 提供的 timedatectl 指令。
[root@localhost ~]# timedatectl
Local time: 日 2020-05-17 15:01:30 CST
Universal time: 日 2020-05-17 07:01:30 UTC
RTC time: 日 2020-05-17 07:01:31
Time zone: Asia/Taipei (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
讀者應該會發現到現今的作業系統大多可以保持正確的時間,再也無須進行手動校時。CentOS 8 預設提供了 chronyd 這個服務來進行網路校時! 若以崑山科大為例,崑山科大提供 ntp.ksu.edu.tw 這個時間伺服器,若以此時間伺服器為主要的更新時間來源,可以這樣做:
[root@localhost ~]# vim /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #pool 2.centos.pool.ntp.org iburst server ntp.ksu.edu.tw iburst <==加入所需要的伺服器 ..... [root@localhost ~]# systemctl enable chronyd [root@localhost ~]# systemctl restart chronyd # 大概間隔個 10~30 秒,等待系統連上 server 後,再進行底下的動作! [root@localhost ~]# systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-05-17 15:38:04 CST; 51s ago Docs: man:chronyd(8) man:chrony.conf(5) Process: 17512 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Process: 17508 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 17510 (chronyd) Tasks: 1 (limit: 11476) Memory: 1.9M CGroup: /system.slice/chronyd.service └─17510 /usr/sbin/chronyd 5月 17 15:38:04 station200 systemd[1]: Starting NTP client/server... 5月 17 15:38:04 station200 chronyd[17510]: chronyd version 3.5 starting (+CMDMON +NTP +....... 5月 17 15:38:04 station200 chronyd[17510]: Using right/UTC timezone to obtain leap second data 5月 17 15:38:04 station200 systemd[1]: Started NTP client/server. 5月 17 15:38:08 station200 chronyd[17510]: Selected source 120.114.100.1 5月 17 15:38:08 station200 chronyd[17510]: System clock TAI offset set to 37 seconds 5月 17 15:38:08 station200 chronyd[17510]: System clock wrong by -2.258910 seconds, adjustment started 5月 17 15:38:06 station200 chronyd[17510]: System clock was stepped by -2.258910 seconds
若有需要了解到目前的 NTP 時間狀況,可以使用追蹤 (tracking) 來處理看看:
[root@localhost ~]# chronyc tracking Reference ID : 78726401 (dns3.ksu.edu.tw) Stratum : 4 Ref time (UTC) : Sun May 17 07:40:16 2020 System time : 0.000008519 seconds slow of NTP time Last offset : -0.000019847 seconds RMS offset : 0.000019847 seconds Frequency : 22.813 ppm slow Residual freq : -0.005 ppm Skew : 3.124 ppm Root delay : 0.008961411 seconds Root dispersion : 0.058238860 seconds Update interval : 64.4 seconds Leap status : Normal [root@station200 ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ntp.ksu.edu.tw 3 6 177 28 +9ns[ -339ns] +/- 64ms
如此一來,如果有網路,則此 Linux 系統就能夠持續的更新時間了。未來我們上課時,時間應該就會是正常的囉!
登入系統時,取得 bash 之後,會有預設的語系資料,預設讀者的環境應該是 zh_TW.utf8 這個語系。但是圖形界面登入處預設為英文語系, 那個環境即為『系統語系』的相關設定。讀者可以使用 locale 來查閱目前的語系,而使用 localectl 來查閱系統的預設語系。
[root@localhost ~]# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
若想要讓圖形界面的畫面以台灣中文為主,可以使用如下的方式來處置:
[root@localhost ~]# localectl list-locales | grep -i tw zh_TW zh_TW.euctw zh_TW.utf8 [root@localhost ~]# localectl set-locale LANG=zh_TW.utf8 [root@localhost ~]# systemctl isolate multi-user.target [root@localhost ~]# systemctl isolate graphical.target
若要作為伺服器,那麼 Linux 的防火牆管理就顯的重要了。CentOS 提供一個名為 firewalld 的防火牆服務, 這個防火牆主要透過 firewall-cmd 指令管理,而防火牆的執行分為兩種方式:
此外,為了方便管理,防火牆將許多不同的應用定義了多種的領域 (zone),不過,在這裡我們只需要知道公開的領域 (public) 即可。
[root@localhost ~]# firewall-cmd --get-default-zone public [root@localhost ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
上面表格顯示預設的防火牆使用 public 這個領域的規則設定,而 public 領域內的資料中,主要應用了:
未來如果讀者的伺服器要加上 httpd 這個 WWW 網頁伺服器服務的話,就以如下的方式來加入:
[root@localhost ~]# firewall-cmd --add-service=http success [root@localhost ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
但是上述指令僅能在這次開機階段執行,重新開機後,或者是重新載入 firewalld 之後,這條規則就被註銷了。因此, 確認規則是正常的之後,應該使用如下的方式增加到設定檔當中才對:
[root@localhost ~]# firewall-cmd --add-service=http --permanent success [root@localhost ~]# firewall-cmd --list-all --permanent
請自行確認輸出的結果含有 http 才行。
許多時刻讀者應該會進行檔案系統的壓縮與打包,讓系統的備份資料或者是減少資料的使用空間。同時,程式設計師在網路提供資料時, 為了降低頻寬使用率,更好的壓縮比會是資料壓縮的考量選項之一。
在 Linux 環境下,常見的壓縮指令有:gzip, bzip2, xz 三種,這三個指令主要的目的為壓縮單一檔案而已。但預設的情況下, 被壓縮的檔案會遺失而僅存在被壓縮完成之後的壓縮檔,除非使用 -c 的選項搭配資料流重導向,方可原始檔案與壓縮檔案同時存在。
因為 gzip, bzip2, xz 主要是針對單一檔案來進行壓縮,對於類似 windows 提供的 winRAR, zip, 7-zip 等可以將多數檔案打包成為一個檔案的用法來說, 這些壓縮指令是無法達到的。不過,Linux 環境底下有提供名為 tar 的打包指令,這個指令也可以使用 gzip, bzip2, xz 的函數來打包並壓縮, 讀者可以將 tar 想成 7-zip 就是了。
tar 的基本語法有點像這樣:
[root@localhost ~]# tar [-z|j|J] -c|-t|-x [-v] [-f tar 支援的檔名] [filename...]
使用 tar 後續接的選項,你可以這樣思考:
我們很常進行將 /etc/ 完整備份的任務,假設我們要將 /etc 使用最大壓縮比的 xz 壓縮備份,可以這樣做:
[root@localhost ~]# cd /dev/shm/zip [root@localhost zip]# tar -Jcv -f etc.tar.xz /etc [root@localhost zip]# ll etc* -rw-r--r--. 1 root root 3726192 5月 17 20:15 etc.tar.xz
一般來說,tar 的副檔名是可以任意命名的,亦即上方的 etc.tar.xz 。不過最好搭配 tar 以及壓縮指令的副檔名較佳,因此常見的副檔名為:
若需要查看 etc.tar.xz 的檔案內容,可以使用如下的方式來查看:
[root@localhost zip]# tar -Jtv -f etc.tar.xz
.......
-rw-r--r-- root/root 28 2020-02-26 09:10 etc/vconsole.conf
-rw-r--r-- root/root 16 2020-05-17 15:47 etc/locale.conf
-rw-r--r-- root/root 18 2020-05-17 14:40 etc/hostname
只要將 -c 改成 -t 即可查閱壓縮檔案的內容,同時讀者也很清楚的看到,檔名的項目『已經移除了根目錄』! 因此,解打包 tar 檔案時,預設會在工作目錄解開檔名。若需要在不同的目錄下解開,就需要搭配 -C 的選項才行 (man tar)。
tar 經常被用來作為系統檔案備份的工具,如果不考慮容量,一般建議使用 gzip 支援速度較快,如果不考慮時間, 則建議支援 xz 壓縮的方式處理,可以有較小的空間使用率。
以 Linux 作業系統的正規目錄來說,建議備份的目錄應該有底下的這些目錄:
若是針對網路服務方面的資料,那經常備份的有:
Linux 系統的工作非常的多,管理員總是希望系統可以自行管理自己,這樣維護系統會比較輕鬆。而自動排程的方式有兩種,分別是:
在預設的情況下,Linux 系統提供的上述兩種工作排程,最小的時間解析度為分鐘,最大的時間解析度為一年內。
單次排程工作必須要啟動 atd 這個『服務』才能夠運作,因此讀者應該先查看系統的 atd 是否有啟動。
[root@localhost ~]# systemctl status atd ● atd.service - Job spooling tools Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-16 21:37:02 CST; 23h ago Main PID: 1137 (atd) Tasks: 1 (limit: 11476) Memory: 568.0K CGroup: /system.slice/atd.service └─1137 /usr/sbin/atd -f 5月 16 21:37:02 localhost.localdomain systemd[1]: Started Job spooling tools.
確定有在運作即可。
單次循環工作可使用『 at TIME 』來處理,那個 TIME 為時間格式。最常見的時間格式為:
[student@localhost ~]$ at HH:MM YYYY-MM-DD [student@localhost ~]$ at now [student@localhost ~]$ at now + 10 minutes
若 student 希望能在今日 11 點,將 ip addr show 的結果輸出到自己家目錄的 myipshow.txt 檔案中,那應該要這樣處理:
[student@localhost ~]$ at 11:00 at> ip addr show &> /home/student/myipshow.txt at> <EOT> <==這裡按下 [ctrl]+d 結束輸入 job 1 at Mon May 18 11:00:00 2020
上表的案例中,我們僅輸入一行指令 (ip addr... 那行),底下那行不要輸入任何字元,直接按下 [ctrl]+d 的組合按鈕即可出現 <EOT> 字樣, 然後就結束 at 的輸入。接下來我們可以查閱 at 的工作佇列狀態:
[student@localhost ~]$ atq
1 Mon May 18 11:00:00 2020 a root
上表即表示第一項工作為 student 在 5 月 18 日 11:00 要執行的。但是實際的內容就得要以『 at -c 1 』來查看,那個 1 指的是第一個工作, 亦即是 atq 輸出的最前面字元的數字。
預設所有人都可以使用 at 這個指令,但如果管理員想要關閉某些用戶的 at 使用權,可以將該用戶寫入 /etc/at.deny 即可。 若要管理的較為嚴格,則將可以執行 at 的用戶寫入 /etc/at.allow,則沒有寫入 at.allow 的用戶將無法使用 at。亦即:
循環型的工作排程需要啟動 crond 這個服務才行,請先確認這個服務的狀態。
[root@localhost ~]# systemctl status crond ● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-16 21:37:02 CST; 24h ago Main PID: 1138 (crond) Tasks: 1 (limit: 11476) Memory: 6.2M CGroup: /system.slice/crond.service └─1138 /usr/sbin/crond -n 5月 17 12:01:01 www.centos CROND[14959]: (root) CMD (run-parts /etc/cron.hourly) 5月 17 13:01:01 www.centos CROND[15482]: (root) CMD (run-parts /etc/cron.hourly)
基本上,cron 的設定可以分為兩種,一種與 at 很類似,直接讓使用者操作指令來設定, 一種則是需要修改到系統設定檔,第二種方式只能讓管理員來設定。
所有用戶 (包含 root) 預設都能使用 crontab 這個指令,當執行 corntab -e 之後,系統就會進入到 cron 的設定環境, 該環境其實就是使用 vi 函式。設定方式主要有六個欄位,設定口訣為『分 時 日 月 周 指令』,每個欄位中間可用空格或 [tab] 按鈕隔開。 至於前面五個欄位的時間參數限制如下:
代表意義 | 分鐘 | 小時 | 日期 | 月份 | 週 | 指令 |
數字範圍 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 指令最好使用絕對路徑 |
週的數字為 0 或 7 時,都代表『星期天』的意思!另外,還有一些輔助的字符,大概有底下這些:
特殊字符 | 代表意義 |
*(星號) | 代表任何時刻都接受的意思!舉例來說,範例一內那個日、月、週都是 * , 就代表著『不論何月、何日的禮拜幾的 12:00 都執行後續指令』的意思! |
,(逗號) | 代表分隔時段的意思。舉例來說,如果要下達的工作是 3:00 與 6:00 時,就會是:
0 3,6 * * * command時間參數還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用! |
-(減號) | 代表一段時間範圍內,舉例來說, 8 點到 12 點之間的每小時的 20 分都進行一項工作:
20 8-12 * * * command仔細看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思! |
/n(斜線) | 那個 n 代表數字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進行一次,則:*/5 * * * * command用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思! |
除了 crontab 之外,管理員也可以在底下的位置放置系統管理的設定,包括:
系統管理的部份,建議寫入到 /etc/crontab 檔案中,如果是管理員想要開發個別的軟體,則建議放置於 /etc/cron.d/* 當中。 舉例而言,若前一小節談到的 /backups/backup_system.sh 想要每週日定期執行一次時,可以這樣設定:
[root@localhost ~]# vim /etc/crontab 0 2 * * 0 root sh /backups/backup_system.sh &> /dev/null
與一般用戶的 crontab -e 指令不同,管理員還需要指定『執行該指令的用戶身份』為何較佳。讀者也可以將上述的設定寫入成為一個檔名, 然後將該檔案放入 /etc/cron.d 目錄中即可。此外,系統也已經指定了一些特定時間會執行的目錄,使用者也能夠自己撰寫腳本後, 將該腳本寫入下列的目錄中即可。
作業硬碟一般操作說明:
作業當中,某些部份可能為簡答題~若為簡答題時,請將答案寫入 /home/student/ans.txt 當中,並寫好正確題號,方便老師訂正答案。 請注意,檔名寫錯將無法上傳!
請使用 root 的身份進行如下實做的任務。直接在系統上面操作,操作成功即可,上傳結果的程式會主動找到你的實做結果。
作業結果傳輸:請以 root 的身分執行 vbird_book_check_unit 指令上傳作業結果。 正常執行完畢的結果應會出現【XXXXXX_aa:bb:cc:dd:ee:ff_unitNN】字樣。若需要查閱自己上傳資料的時間, 請在作業系統上面使用瀏覽器查詢: http://192.168.251.254 檢查相對應的課程檔案。 相關流程請參考: vbird_book_check_unit