Beforehand
1. Set all the hostname
2. Privileged mode password
3. Global configuration mode password
4. Turn on telnet
Router Setting
1. Let the port which connected with switch be up-up
2. Set serial-to-serial clock rate. Make them up-up
VLAN Setting (if it's necessary)
1. Set ip and gateway of switch on vlan 1
2. Cisco Router Trunk Setting
3. Cisco Switch Trunk Setting
4. Create vlan
5. Assign vlan to ports
6. Save the configuration
Chose the routing protocol
RIP Routing Protocol (version 2)
OSPF Routing Protocol
以上只是講個概念 一個網路是怎麼從第一層設定到第三層
最後到成功可以Routing
2010年2月6日 星期六
2010年1月22日 星期五
[Linux] Wireshark tarball for openSuSE
First, go to the wireshark's web.
http://www.wireshark.org/download.html
Click the hyperlink named Source Code to download Wireshark.tar.bz
# tar -jxvf wireshark.x.x.x.tar.bz -C /root
# cd wireshark.x.x.x
If you want to read more information about the wireshark installation
You can
# less INSTALL or # less README
# ./configure
# make
# make install
To start wireshark
# wireshark
If it didn't work, please check for the path of lib
-------------------------------------------------------------------------------------------
For openSuSE 11.2 here is some solutions to make it work
First, you have to remake the libpcap.
Because there is no pcap.h in the lib.
Then, you have to check for libpcap version.
Go to the website and download the tarball
http://www.tcpdump.org/
# tar -zxvf libpcap.x.x.x.tar.gz -C /root
# cd libpcap.x.x.x
# ./configure
# ./make
# ./make install
# cd wireshark.x.x.x
# ./configure
# ./make
# ./make install
After starting wireshark, you will get a message like "libwiretap.so.0, No file or Directory".
It means there is no libwiretap.so.0 in your lib.
But you can use command "locate" to find the file.
Then make sure your lib
# cp -aR /usr/local/lib/* /usr/lib/
Down
http://www.wireshark.org/download.html
Click the hyperlink named Source Code to download Wireshark.tar.bz
# tar -jxvf wireshark.x.x.x.tar.bz -C /root
# cd wireshark.x.x.x
If you want to read more information about the wireshark installation
You can
# less INSTALL or # less README
# ./configure
# make
# make install
To start wireshark
# wireshark
If it didn't work, please check for the path of lib
-------------------------------------------------------------------------------------------
For openSuSE 11.2 here is some solutions to make it work
First, you have to remake the libpcap.
Because there is no pcap.h in the lib.
Then, you have to check for libpcap version.
Go to the website and download the tarball
http://www.tcpdump.org/
# tar -zxvf libpcap.x.x.x.tar.gz -C /root
# cd libpcap.x.x.x
# ./configure
# ./make
# ./make install
# cd wireshark.x.x.x
# ./configure
# ./make
# ./make install
After starting wireshark, you will get a message like "libwiretap.so.0, No file or Directory".
It means there is no libwiretap.so.0 in your lib.
But you can use command "locate" to find the file.
Then make sure your lib
# cp -aR /usr/local/lib/* /usr/lib/
Down
2009年12月22日 星期二
[Linux] Incremental Backup Shell Script
#!/bin/bash
#判斷下列目錄是否存在,如不存在則建立
[ -d /var/backup ] || mkdir /var/backup
[ -d /var/log/backup ] || mkdir /var/log/backup
#完全備份,先把該資料夾所有的acl寫入至一個檔案。檢查snapshot_file是否存在,
#如果存在則刪除,主要是不影響完全備份。tar 照相snapshot_file並
#建立且壓縮full-date.tar.gz的tarball,運用tee把過程寫入輸出至last-backup且
#輸入至backup-date.log。$?=0 為真
full (){ getfacl -R /home > /home/acls-`date +%F`
[ -f /var/log/backup/snapshot_file ] && rm /var/log/backup/snapshot_file
tar -cz -g /var/log/backup/snapshot_file -f /var/backup/full-`date +%F`.tar.gz /home | tee /var/log/backup/last-backup > /var/log/backup/backup-`date +%F`.log
x=`echo $?`
touch /var/log/backup/last-backup
}
#增量備份,先把該資料夾所有的acl寫入至一個檔案。
#tar 比對之前的照相snapshot_file,比對後且重新照張相,並將比對出不一樣的檔案
#建立且壓縮incremental-date.tar.gz的tarball,運用tee把過程寫入輸出至last-backup且
#輸入至backup-date.log。$?=0 為真
incr (){ getfacl -R /home > /home/acls-`date +%F`
tar -cz -g /var/log/backup/snapshot_file -f /var/backup/incremental-`date +%F`.tar.gz /home | tee /var/log/backup/last-backup > /var/log/backup/backup-`date +%F`.log
x=`echo $?`
}
#取得今天是星期幾,存於DOW內
DOW=`date +%a`
#判斷DOW,只有星期一才要完全備份,其餘工作天都使用增量備份
case "$DOW" in
Mon) full ;;
Tue) incr ;;
Wed) incr ;;
Thu) incr ;;
Fri) incr ;;
esac
#用ssh連線遠端同步
rsync -a /var/backup -e ssh root@10.120.14.117:/root/
# x!=0 為偽。兩個函式執行完tar的$?的值
if [ $x -ne 0 ] ; then
echo "" | mail -s "Backup Failed!" root
fi
exit 0
#
#判斷下列目錄是否存在,如不存在則建立
[ -d /var/backup ] || mkdir /var/backup
[ -d /var/log/backup ] || mkdir /var/log/backup
#完全備份,先把該資料夾所有的acl寫入至一個檔案。檢查snapshot_file是否存在,
#如果存在則刪除,主要是不影響完全備份。tar 照相snapshot_file並
#建立且壓縮full-date.tar.gz的tarball,運用tee把過程寫入輸出至last-backup且
#輸入至backup-date.log。$?=0 為真
full (){ getfacl -R /home > /home/acls-`date +%F`
[ -f /var/log/backup/snapshot_file ] && rm /var/log/backup/snapshot_file
tar -cz -g /var/log/backup/snapshot_file -f /var/backup/full-`date +%F`.tar.gz /home | tee /var/log/backup/last-backup > /var/log/backup/backup-`date +%F`.log
x=`echo $?`
touch /var/log/backup/last-backup
}
#增量備份,先把該資料夾所有的acl寫入至一個檔案。
#tar 比對之前的照相snapshot_file,比對後且重新照張相,並將比對出不一樣的檔案
#建立且壓縮incremental-date.tar.gz的tarball,運用tee把過程寫入輸出至last-backup且
#輸入至backup-date.log。$?=0 為真
incr (){ getfacl -R /home > /home/acls-`date +%F`
tar -cz -g /var/log/backup/snapshot_file -f /var/backup/incremental-`date +%F`.tar.gz /home | tee /var/log/backup/last-backup > /var/log/backup/backup-`date +%F`.log
x=`echo $?`
}
#取得今天是星期幾,存於DOW內
DOW=`date +%a`
#判斷DOW,只有星期一才要完全備份,其餘工作天都使用增量備份
case "$DOW" in
Mon) full ;;
Tue) incr ;;
Wed) incr ;;
Thu) incr ;;
Fri) incr ;;
esac
#用ssh連線遠端同步
rsync -a /var/backup -e ssh root@10.120.14.117:/root/
# x!=0 為偽。兩個函式執行完tar的$?的值
if [ $x -ne 0 ] ; then
echo "" | mail -s "Backup Failed!" root
fi
exit 0
#
2009年12月20日 星期日
[Linux] Apahce 整合到 syslog-ng
SLES 10
/etc/apache2/httpd.conf
--------------------------
| ErrorLog syslog:user
| LogLevel warn
上面那個LogLevel改不改無所謂 到最後會被覆蓋掉
/etc/sysconfig/apache2
---------------------------
| APACHE_ACCESS_LOG="syslog:user combined"
| APACHE_LOGLEVEL="[自選]"
以上大綱 剩下看文件
syslog-ng設定檔的部分就跟老師上課的一樣
不過最後訊息不能全部整合,訊息如下
Dec 20 21:40:47 Linux gconfd (root-13560): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 0
Dec 20 21:40:51 Linux kernel: ISO 9660 Extensions: Microsoft Joliet Level 3
Dec 20 21:40:51 Linux kernel: ISO 9660 Extensions: RRIP_1991A
Dec 20 21:40:51 Linux zmd: NetworkManagerModule (WARN): Failed to connect to NetworkManager
Dec 20 21:40:58 Linux zmd: Daemon (WARN): Not starting remote web server
Dec 20 21:41:50 Linux httpd2-prefork[12891]: [error] [client 192.168.150.1] File does not exist: /srv/www/htdocs/index
但是apache原始的access_log,如下
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET / HTTP/1.1" 200 553 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET /icons/folder.gif HTTP/1.1" 304 - "http://192.168.150.22/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET /icons/blank.gif HTTP/1.1" 304 - "http://192.168.150.22/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:18:03 +0800] "GET /index.html HTTP/1.1" 404 1046 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
也就是說不能整合進來資訊太多了,整能簡簡單單的看到user連結錯誤的網頁會有個error紀
錄,但是apache內建的資訊卻是相當龐大的,有連線回應和連線錯誤都有紀錄,再來還有很
多很多,有興趣的請看apache的log文件,有格式教學。
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
/etc/apache2/httpd.conf
--------------------------
| ErrorLog syslog:user
| LogLevel warn
上面那個LogLevel改不改無所謂 到最後會被覆蓋掉
/etc/sysconfig/apache2
---------------------------
| APACHE_ACCESS_LOG="syslog:user combined"
| APACHE_LOGLEVEL="[自選]"
以上大綱 剩下看文件
syslog-ng設定檔的部分就跟老師上課的一樣
不過最後訊息不能全部整合,訊息如下
Dec 20 21:40:47 Linux gconfd (root-13560): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 0
Dec 20 21:40:51 Linux kernel: ISO 9660 Extensions: Microsoft Joliet Level 3
Dec 20 21:40:51 Linux kernel: ISO 9660 Extensions: RRIP_1991A
Dec 20 21:40:51 Linux zmd: NetworkManagerModule (WARN): Failed to connect to NetworkManager
Dec 20 21:40:58 Linux zmd: Daemon (WARN): Not starting remote web server
Dec 20 21:41:50 Linux httpd2-prefork[12891]: [error] [client 192.168.150.1] File does not exist: /srv/www/htdocs/index
但是apache原始的access_log,如下
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET / HTTP/1.1" 200 553 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET /icons/folder.gif HTTP/1.1" 304 - "http://192.168.150.22/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:17:32 +0800] "GET /icons/blank.gif HTTP/1.1" 304 - "http://192.168.150.22/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
192.168.150.1 - - [20/Dec/2009:21:18:03 +0800] "GET /index.html HTTP/1.1" 404 1046 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322)"
也就是說不能整合進來資訊太多了,整能簡簡單單的看到user連結錯誤的網頁會有個error紀
錄,但是apache內建的資訊卻是相當龐大的,有連線回應和連線錯誤都有紀錄,再來還有很
多很多,有興趣的請看apache的log文件,有格式教學。
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html
2009年12月19日 星期六
[Linux] Shell Script Homework2
2.設計一個名為manymaxmin的script,使其可以接收不固定的多個數字參數,顯示數字中最大的及最小的,如果都一樣大,則顯示都一樣大。
##########################################################
#!/bin/sh
for x in $@
do
if [ -z "$max" ]
then
max=$x
min=$x
fi
if [ $max -lt $x ]
then
max=$x
elif [ $min -gt $x ]
then
min=$x
else
continue
fi
done
if [ $min -eq $max ]
then
echo "equal"
else
echo "Max=$max"
echo "Min=$min"
fi
exit 0
##########################################################
3.設計一個名為createmyfiles的script,以迴圈配合touch指令,產生十個檔案,檔名分別為myprog1.c,myprog2.c,...,myprog10.c。
##########################################################
#!/bin/sh
for ((i=1;i<=10;i++))
do
touch myprog$i.c
done
exit 0
##########################################################
4.設計一個名為lastfiles的script,顯示目前目錄中最近被修改的n個檔案檔名。
##########################################################
#!/bin/sh
ls -t | head -n $1
exit 0
##########################################################
5.設計一個名為mvfiles的script,可以將所有副檔名為.c檔案,副檔名更名為.cpp,更名前後的副檔名均自命令列輸入。並將更名的結果顯示出來。
##########################################################
#!/bin/sh
for file in *$1
do
mv $file `basename $file $1`$2
echo renamed $file to `basename $file $1`$2
done
exit 0
#########################################################
##########################################################
#!/bin/sh
for x in $@
do
if [ -z "$max" ]
then
max=$x
min=$x
fi
if [ $max -lt $x ]
then
max=$x
elif [ $min -gt $x ]
then
min=$x
else
continue
fi
done
if [ $min -eq $max ]
then
echo "equal"
else
echo "Max=$max"
echo "Min=$min"
fi
exit 0
##########################################################
3.設計一個名為createmyfiles的script,以迴圈配合touch指令,產生十個檔案,檔名分別為myprog1.c,myprog2.c,...,myprog10.c。
##########################################################
#!/bin/sh
for ((i=1;i<=10;i++))
do
touch myprog$i.c
done
exit 0
##########################################################
4.設計一個名為lastfiles的script,顯示目前目錄中最近被修改的n個檔案檔名。
##########################################################
#!/bin/sh
ls -t | head -n $1
exit 0
##########################################################
5.設計一個名為mvfiles的script,可以將所有副檔名為.c檔案,副檔名更名為.cpp,更名前後的副檔名均自命令列輸入。並將更名的結果顯示出來。
##########################################################
#!/bin/sh
for file in *$1
do
mv $file `basename $file $1`$2
echo renamed $file to `basename $file $1`$2
done
exit 0
#########################################################
2009年12月9日 星期三
[Linux] SLES 10 安裝 Joomla 所需套件
Apache2所需套件與模組
apache2
apache2-devel
apache2-doc
apache2-mod_auth_mysql
apache2-mod_php5
apache2-prefork
libapr-util1
libapr-util1-devel
libapr1
libapr-devel
PHP所需套件與模組
apache2_mod_php5
php5
php5-bz2
php5-devel
php5-gd
php5-mysql
php5-zlib
MySql所需套件與模組
apache2-mod_auth_mysql
mysql
mysql-client
mysql-devel
mysql-shared
per1-DBD-mysql
php5-mysql
有些不一定是必要的,只是習慣裝一裝,日後問題也少
啟動apache2、mysql、解壓縮joomla至apache2網頁空間內
mysql啟動時,請設定root密碼,啟動時會有相關訊息
joomla相關檔案的owner和group改成 u: wwwrun g: www
configuration.conf資料夾內就有範例,補上Database的相關資訊及可
apache2
apache2-devel
apache2-doc
apache2-mod_auth_mysql
apache2-mod_php5
apache2-prefork
libapr-util1
libapr-util1-devel
libapr1
libapr-devel
PHP所需套件與模組
apache2_mod_php5
php5
php5-bz2
php5-devel
php5-gd
php5-mysql
php5-zlib
MySql所需套件與模組
apache2-mod_auth_mysql
mysql
mysql-client
mysql-devel
mysql-shared
per1-DBD-mysql
php5-mysql
有些不一定是必要的,只是習慣裝一裝,日後問題也少
啟動apache2、mysql、解壓縮joomla至apache2網頁空間內
mysql啟動時,請設定root密碼,啟動時會有相關訊息
joomla相關檔案的owner和group改成 u: wwwrun g: www
configuration.conf資料夾內就有範例,補上Database的相關資訊及可
2009年12月3日 星期四
[Linux] Shell Script Homework1
Linux Shell Script Programming hw 1
----
1.設計一個名為showme的script,藉由環境變數及一些Linux指令,使其可以顯示資訊如下:
##########################################################
#!/bin/sh
echo "Login ID: $LOGNAME"
echo "My Home: $HOME"
echo "List My Home Directory"
ls -l /root
echo "My Shell: $SHELL"
echo "Hostname: $HOSTNAME"
pwd
ls -l
exit 0
##########################################################
2.設計一個名為verbvar的script,利用read輸入一個簡單的英文動詞,在其前加入一個to印出
原形,字尾加ing印出作為進行式,字尾加ed印出作為過去式
##########################################################
#!/bin/sh
echo -n "Please Enter The Verb:"
read word
echo "Present tense: to ${word}"
echo "Past tense: ${word}ed"
echo "Progressive tense: ${word}ing"
exit 0
##########################################################
3.設計一個名為addtwo的script,使其可以接收兩個數字參數,並將其相加後的結果顯示出來,
如果參數個數不夠或太多,就不執行運算,而顯示一段訊息,提示出正確的執行方式必須給
兩個參數。
##########################################################
#!/bin/sh
if [ $# -eq 2 ]
then
echo "sum = `expr $1 + $2`"
else
echo "Usage: ./addtwo number1 number2"
fi
exit 0
##########################################################
4.設計一個名為mycal的script,使其可以接收三個數字參數,第一、三個參數為數字,第二
個參數為運算子(+-*/其中之一)以多層的if計算其結果,並將其結果顯示出來,如果參數個
數不夠或太多,就不執行運算,而顯示一段訊息,提示出正確的執行方式。如果中間的運
算子是/,而第三個參數是0,則顯示除數不可為0
##########################################################
#!/bin/sh
if [ $# -eq 3 ]
then
if [ "$2" = "+" ]
then
echo "result = `expr $1 + $3`"
elif [ "$2" = "-" ]
then
echo "result = `expr $1 - $3`"
elif [ "$2" = "*" ]
then
echo "result = `expr $1 \* $3`"
elif [ "$2" = "/" ]
then
echo "result = `expr $1 / $3`"
else
echo "you have worng format"
fi
else
echo "you have worng format"
fi
exit 0
##########################################################
5.設計一個名為getmax的script,使其可以接收兩個數字參數,將較大的數顯示出來,如果
都一樣大,則顯示都一樣大。
##########################################################
#!/bin/sh
if [ $1 -gt $2 ]
then
echo "Max = $1"
fi
if [ $1 -eq $2 ]
then
echo "Equals"
fi
if [ $1 -lt $2 ]
then
echo "Max = $2"
fi
exit 0
##########################################################
6.設計一個名為checkfile的script,使其可以接收一個檔案名稱作為參數,若此名稱不是目
前工作目錄的檔案或目錄,則顯示此名稱不存在,如果是檔案,則顯示其檔案內容,如
果是一目錄則顯示此目錄內的清單。
##########################################################
#!/bin/sh
if [ -e "$1" ]
then
if [ -f "$1" ]
then
cat $1
elif [ -d "$1" ]
then
ls -l $1
else
echo "permission deny"
fi
else
echo "no file or directory"
fi
exit 0
##########################################################
7.設計一個名為newerfile的script,使其可以接收兩個檔案名稱作為參數,並將日期較新的
檔案名稱顯示出來。
##########################################################
#!/bin/sh
if [ $1 -nt $2 ]
then
echo "$1 is newer"
else
echo "$2 is newer"
fi
exit 0
##########################################################
8.設計一個名為avglen的script,使其可以接收一個檔案名稱(文字檔)作為參數,計算此檔
平均每一列有多少bytes。提示:使用wc -l < 檔名; 用man查一下wc的用法
##########################################################
#!/bin/sh
x=`wc -l < $1`
y=`wc -c < $1`
echo "$y $x"
echo "average bytes per line is `expr $y / $x`"
exit 0
##########################################################
9.設計一個名為createtodayfile的script,以touch指令產生一個檔案,檔名中含有今天的日
期,例如myfile20090706.txt。date +%Y...., 其餘date的日期格式, 請以man指令查詢
##########################################################
#!/bin/sh
x=`date +%Y%m%d`
touch myfile$x.txt
exit 0
##########################################################
10.設計一個名為addfiles的script,可自命令列讀取參數產生檔案allfile,如下,每加入一個
檔案,隔2秒,如果重覆執行,則覆蓋原檔案。
##########################################################
----
1.設計一個名為showme的script,藉由環境變數及一些Linux指令,使其可以顯示資訊如下:
##########################################################
#!/bin/sh
echo "Login ID: $LOGNAME"
echo "My Home: $HOME"
echo "List My Home Directory"
ls -l /root
echo "My Shell: $SHELL"
echo "Hostname: $HOSTNAME"
pwd
ls -l
exit 0
##########################################################
2.設計一個名為verbvar的script,利用read輸入一個簡單的英文動詞,在其前加入一個to印出
原形,字尾加ing印出作為進行式,字尾加ed印出作為過去式
##########################################################
#!/bin/sh
echo -n "Please Enter The Verb:"
read word
echo "Present tense: to ${word}"
echo "Past tense: ${word}ed"
echo "Progressive tense: ${word}ing"
exit 0
##########################################################
3.設計一個名為addtwo的script,使其可以接收兩個數字參數,並將其相加後的結果顯示出來,
如果參數個數不夠或太多,就不執行運算,而顯示一段訊息,提示出正確的執行方式必須給
兩個參數。
##########################################################
#!/bin/sh
if [ $# -eq 2 ]
then
echo "sum = `expr $1 + $2`"
else
echo "Usage: ./addtwo number1 number2"
fi
exit 0
##########################################################
4.設計一個名為mycal的script,使其可以接收三個數字參數,第一、三個參數為數字,第二
個參數為運算子(+-*/其中之一)以多層的if計算其結果,並將其結果顯示出來,如果參數個
數不夠或太多,就不執行運算,而顯示一段訊息,提示出正確的執行方式。如果中間的運
算子是/,而第三個參數是0,則顯示除數不可為0
##########################################################
#!/bin/sh
if [ $# -eq 3 ]
then
if [ "$2" = "+" ]
then
echo "result = `expr $1 + $3`"
elif [ "$2" = "-" ]
then
echo "result = `expr $1 - $3`"
elif [ "$2" = "*" ]
then
echo "result = `expr $1 \* $3`"
elif [ "$2" = "/" ]
then
echo "result = `expr $1 / $3`"
else
echo "you have worng format"
fi
else
echo "you have worng format"
fi
exit 0
##########################################################
5.設計一個名為getmax的script,使其可以接收兩個數字參數,將較大的數顯示出來,如果
都一樣大,則顯示都一樣大。
##########################################################
#!/bin/sh
if [ $1 -gt $2 ]
then
echo "Max = $1"
fi
if [ $1 -eq $2 ]
then
echo "Equals"
fi
if [ $1 -lt $2 ]
then
echo "Max = $2"
fi
exit 0
##########################################################
6.設計一個名為checkfile的script,使其可以接收一個檔案名稱作為參數,若此名稱不是目
前工作目錄的檔案或目錄,則顯示此名稱不存在,如果是檔案,則顯示其檔案內容,如
果是一目錄則顯示此目錄內的清單。
##########################################################
#!/bin/sh
if [ -e "$1" ]
then
if [ -f "$1" ]
then
cat $1
elif [ -d "$1" ]
then
ls -l $1
else
echo "permission deny"
fi
else
echo "no file or directory"
fi
exit 0
##########################################################
7.設計一個名為newerfile的script,使其可以接收兩個檔案名稱作為參數,並將日期較新的
檔案名稱顯示出來。
##########################################################
#!/bin/sh
if [ $1 -nt $2 ]
then
echo "$1 is newer"
else
echo "$2 is newer"
fi
exit 0
##########################################################
8.設計一個名為avglen的script,使其可以接收一個檔案名稱(文字檔)作為參數,計算此檔
平均每一列有多少bytes。提示:使用wc -l < 檔名; 用man查一下wc的用法
##########################################################
#!/bin/sh
x=`wc -l < $1`
y=`wc -c < $1`
echo "$y $x"
echo "average bytes per line is `expr $y / $x`"
exit 0
##########################################################
9.設計一個名為createtodayfile的script,以touch指令產生一個檔案,檔名中含有今天的日
期,例如myfile20090706.txt。date +%Y...., 其餘date的日期格式, 請以man指令查詢
##########################################################
#!/bin/sh
x=`date +%Y%m%d`
touch myfile$x.txt
exit 0
##########################################################
10.設計一個名為addfiles的script,可自命令列讀取參數產生檔案allfile,如下,每加入一個
檔案,隔2秒,如果重覆執行,則覆蓋原檔案。
##########################################################
訂閱:
文章 (Atom)