十四:使用CentOS常用命令查看開機運行時間 uptime 09:44:45 up 67 days, 23:32, ... 看來剛才確實是網段的問題,我的機器還是67天前開機的。 #系統資源使用情況 vmstat 1 -S m procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0
十五:使用CentOS常用命令查看開機運行時間 uptime 09:44:45 up 67 days, 23:32, ... 看來剛才確實是網段的問題,我的機器還是67天前開機的。 #系統資源使用情況 1. vmstat 1 -S m 2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ 3. r b swpd free buff cache si so bi bo in cs us sy id wa st 4. 0 0 0 233 199 778 0 0 4 25 1 1 3 0 96 0 0 5. 0 0 0 233 199 778 0 0 0 0 1029 856 13 1 86 0 0 6. 對大家推薦很好使用的Linux CentOS系統,像讓大家對Linux CentOS系統有所了解,然后對Linux CentOS系統全面講解介紹,希望對大家有用Linux CentOS常用的命令. wget$ wget -r -np -nd http://example.com/packages/ 這條命令可以下載 http://example.com 網站上 packages 目錄中的所有文件。Linux CentOS其中,-np 的作用是不遍歷父目錄,-nd 表示不在本機重新創建目錄結構。 $ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/ 與上一條命令相似,Linux CentOS但多加了一個 --accept=iso 選項,這指示 wget 僅下載 i386 目錄中所有擴展名為 iso 的文件。你也可以指定多個擴展名,Linux CentOS只需用逗號分隔即可。 $ wget -i filename.txt 此命令常用于批量下載的情形,Linux CentOS把所有需要下載文件的地址放到 filename.txt 中,然后 wget 就會自動為你下載所有文件了。 Linux CentOS$ wget -c http://example.com/really-big-file.iso 這里所指定的 -c 選項的作用為斷點續傳。 $ wget -m -k (-H) http://www.example.com/ 該命令可用來鏡像一個網站,wget 將對鏈接進行轉換。Linux CentOS如果網站中的圖像是放在另外的站點,那么可以使用 -H 選項。
VI 編輯命令命令模式 移動光標 [Ctrl] + [f] → 屏幕『向下』移動一頁,相當于 [Page Down]按鍵 [Ctrl] + [b] → 屏幕『向上』移動一頁,相當于 [Page Up] 按鍵 nspace> → n 表示『數字』。按下數字后再按空白鍵,光標會向右移動這一行的 n 個字元 0 → 數字『 0 』:移動到這一行的最前面字元處 $ → 移動到這一行的最后面字元處 G → 移動到這個文件的最后一行 nG → n 為數字。移動到這個文件的第 n 行(可配合 :set nu) gg → 移動到這個文件的第一行,相當于 1G nEnter> → n 為數字。光標向下移動 n 行 Linux CentOS查找與替換 n → 『重復前一個查找的動作』 N → 與 n 剛好相反,為『反向』進行前一個查找動作 :n1,n2s/word1/word2/g → n1 與 n2 均為數字。在第 n1 與 n2 行之間查找 word1 字符串,并將該字符串替換為 word2。 如:在 1 到 9 行之間查找 eric4ever 并替換為 ERIC4EVER 則:『:1,9s/eric4ever/ERIC4EVER/g』 :1,$s/word1/word2/g → 從第一行到最后一行查找 word1 字符串,并將該字符串替換為 word2 :1,$s/word1/word2/gc → 從第一行到最后一行查找 word1 字符串,并將該字符窗替換為 word2,替換前顯示提示對話框是否確認替換
Linux CentOS刪除、復制與粘貼 x, X → 在一行字當中,x 為向后刪除一個字元 (相當于 [del] 按鍵), X 為向前刪除一個字元(相當于 [backspace] 按鍵) dd → 刪除光標所在的那一整行 ndd → n 為數字。刪除光標所在的向下 n 列 yy → 復制光標所在的那一行 nyy → n 為數字。復制光標所在的向下 n 列 p, P → p 為將已復制的內容粘貼在光標下一行上,P 則為粘貼在光標的上一行 u → 還原前一個動作 [Ctrl]+r → 重做上一個動作 . → 小數點,意思是重復前一個動作 Linux CentOS編輯模式i, I → 插入:在目前的光標所在處插入輸入的文字,已存在的文字會向后退; 其中, i 為『從目前光標所在處插入』, I 為『在目前所在行的第一個非空白字元處開始插入』a, A → a 為『從目前光標所在的下一個字元處開始插入』, A 為『從光標所在行的最后一個字元處開始插入』 o, O → o 為『在目前光標所在的下一行處插入新的一行』, O 為『在目前光標所在處的上一行插入新的一行』 r, R → r 為『取代光標所在的那一個字元』, R 為『一直取代光標所在的文字,直到按下 ESC 為止』 Esc → 退出編輯模式,回到一般模式中 Linux CentOS末行指令模式 :w → 將編輯的文件寫入到硬盤上 :q → 退出 vi :set nu → 顯示行號 :set nonu → 取消顯示行號 Linux CentOSvim 塊操作 Ctrl+v 進入視圖模式 Esc>退出視圖模式 在Ctrl+v 后: Dollar>+ A在塊的每行末尾添加 I 插入 y 塊抽取 p 塊粘貼 c 修改 Linux centos已被廣泛應用但是也在不斷的更新,這里介紹Linux centos安裝設置使用,幫助大家安裝更新Linux centos系統手動配置Linux centos的IP地址 今天在vmware server上裝了個centos-4.7(免費的redhat,是小紅帽的的克隆版本,跟小紅帽的版本是對應的),其中ip安裝時沒設好,一般Linux centos的網卡IP地址是存放在文件中的,這個配置文件在/etc/sysconfig/network-scripts下, 名稱分別為ifcfg-eth0,ifcfg-eth1....如果你有一塊網卡,就只有ifcfg-eth0一個文件,如果你有兩塊或者兩塊以上的網卡,就會有ifcfg-eth1、ifcfg-eth2等文件的出現。
文件結構: DEVICE=eth0 //指出設備名稱 ONBOOT=yes//是否啟動應用 BOOTPROTO=static //啟動類型 靜態 (默認dhcp) IPADDR=192.168.0.77 //IP地址 NETMASK=255.255.255.0//子網掩碼 GATEWAY=192.168.0.1 //網關 步驟: 1、vi /etc/sysconfig/network-scripts/ifcfg-teh0 (也可通過管理工具setup或netconfig命令設置) 2、重新啟動網絡服務service network restart 要想和主機連接:還需配置xp主機,在vmware上設置為 host-only模式,xp里修改vmnet1的IP地址為192.168.0.1, 修改Linux centos IP為192.168.0.77 共享上網設置:xp里修改第一塊虛擬網卡的網絡屬性為共享internet(屬性->高級->鉤選“允許其他網絡用戶通過此計算機的Internet連接來連接”) 會自動把vmnet1改為192.168.0.1,Linux centos就能上網了 CentOS Vsftpd配置經過長時間的發展,這里我發表一下個人理解,下面就這就來講術CentOS Vsftpd配置。調整CentOS Vsftpd配置文件: 1.編輯CentOS Vsftpd配置文件前先備份 [root@KcentOS5 ~]cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup 2.編輯主CentOS Vsftpd配置文件Vsftpd.conf [root@KcentOS5 ~]vi /etc/vsftpd/vsftpd.conf 這里我將原CentOS Vsftpd配置文件的修改完全記錄,凡是修改的地方我都會保留注釋原來的配置。其中加入我對每條配置項的認識,對于一些比較關鍵的配置項這里我做了我的觀點,并且原本英語的說明我也不刪除,供參考對比用。 Example config file /etc/vsftpd/vsftpd.conf The default compiled in settings are fairly paranoid. This sample file loosens things up a bit, to make the ftp daemon more usable. Please see vsftpd.conf.5 for all compiled in defaults. READ THIS: This example file is NOT an exhaustive list of vsftpd options. Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's capabilities. Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES anonymous_enable=NO 設定不允許匿名訪問
Uncomment this to allow local users to log in. local_enable=YES設定本地用戶可以訪問。注意:主要是為虛擬宿主用戶,如果該項目設定為NO那么所有虛擬用戶將無法訪問。 Uncomment this to enable any form of FTP write command. write_enable=YES 設定可以進行寫操作。 Default umask for local users is 077. You may wish to change this to 022, if your users expect that (022 is used by most other ftpd's) local_umask=022 設定上傳后文件的權限掩碼。 Uncomment this to allow the anonymous FTP user to upload files. This only has an effect if the above global write enable is activated. Also, you will obviously need to create a directory writable by the FTP user. anon_upload_enable=YES anon_upload_enable=NO 禁止匿名用戶上傳。 Uncomment this if you want the anonymous FTP user to be able to create new directories. anon_mkdir_write_enable=YES anon_mkdir_write_enable=NO 禁止匿名用戶建立目錄。 Activate directory messages - messages given to remote users when they go into a certain directory. dirmessage_enable=YES 設定開啟目錄標語功能。 Activate logging of uploads/downloads. xferlog_enable=YES 設定開啟日志記錄功能。
Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES 設定端口20進行數據連接。 If you want, you can arrange for uploaded anonymous files to be owned by a different user. Note! Using "root" for uploaded files is not recommended! chown_uploads=YES chown_uploads=NO 設定禁止上傳文件更改宿主。 chown_username=whoever You may override where the log file goes if you like. The default is shown below. xferlog_file=/var/log/vsftpd.log 設定CentOS Vsftpd配置的服務日志保存路徑。注意,該文件默認不存在。必須要手動touch出來,并且由于這里更改了CentOS Vsftpd配置的服務宿主用戶為手動建立的Vsftpd。必須注意給與該用戶對日志的寫入權限,否則服務將啟動失敗。 If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES 設定日志使用標準的記錄格式。 You may change the default value for timing out an idle session. idle_session_timeout=600 設定空閑連接超時時間,這里使用默認。將具體數值留給每個具體用戶具體指定,當然如果不指定的話,還是使用這里的默認值600,單位秒。
You may change the default value for timing out a data connection. data_connection_timeout=120 設定單次最大連續傳輸時間,這里使用默認。將具體數值留給每個具體用戶具體指定,當然如果不指定的話,還是使用這里的默認值120,單位秒。 It is recommended that you define on your system a unique user which the ftp server can use as a totally isolated and unprivileged user. nopriv_user=ftpsecure nopriv_user=vsftpd 設定支撐CentOS Vsftpd服務的宿主用戶為手動建立的Vsftpd用戶。注意,一旦做出更改宿主用戶后,必須注意一起與該服務相關的讀寫文件的讀寫賦權問題。比如日志文件就必須給與該用戶寫入權限等。 Enable this and the server will recognise asynchronous ABOR requests. Not recommended for security (the code is non-trivial). Not enabling it, however, may confuse older FTP clients. async_abor_enable=YES 設定支持異步傳輸功能。 By default the server will pretend to allow ASCII mode but in fact ignore the request. Turn on the below options to have the server actually do ASCII mangling on files when in ASCII mode. Beware that on some FTP servers, ASCII support allows a denial of service attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd predicted this attack and has always been safe, reporting the size of the raw file. ASCII mangling is a horrible feature of the protocol. ascii_upload_enable=YES ascii_download_enable=YES 設定支持ASCII模式的上傳和下載功能。 You may fully customise the login banner string: ftpd_banner=This Vsftp server supports virtual users ^_^ 設定CentOS Vsftpd配置的登陸標語。 You may specify a file of disallowed anonymous e-mail addresses. Apparently useful for combatting certain DoS attacks. deny_email_enable=YES
(default follows) banned_email_file=/etc/vsftpd/banned_emails You may specify an explicit list of local users to chroot() to their home directory. If chroot_local_user is YES, then this list becomes a list of users to NOT chroot(). chroot_list_enable=YES chroot_list_enable=NO 禁止用戶登出自己的FTP主目錄。 (default follows) chroot_list_file=/etc/vsftpd/chroot_list You may activate the "-R" option to the builtin ls. This is disabled by default to avoid remote users being able to cause excessive I/O on large sites. However, some broken FTP clients such as "ncftp" and "mirror" assume the presence of the "-R" option, so there is a strong case for enabling it. ls_recurse_enable=YES ls_recurse_enable=NO 禁止用戶登陸FTP后使用"ls -R"的命令。該命令會對服務器性能造成巨大開銷。如果該項被允許,那么擋多用戶同時使用該命令時將會對該服 務器造成威脅。 When "listen" directive is enabled, vsftpd runs in standalone mode and listens on IPv4 sockets. This directive cannot be used in conjunction with the listen_ipv6 directive. listen=YES 設定該CentOS Vsftpd服務工作在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務擁有自己的守護進程支持,在ps -A命令下我們將可用看到vsftpd的守護進程名。如果不想工作在StandAlone模式下,則可以選擇SuperDaemon模式,在該模式下 vsftpd將沒有自己的守護進程,而是由超級守護進程Xinetd全權代理,與此同時,Vsftp服務的許多功能將得不到實現。 This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 sockets, you must run two copies of vsftpd whith two configuration files. Make sure, that one of the listen options is commented !! listen_ipv6=YES pam_service_name=vsftpd
CentOS vsftp安裝: 1.安裝CentOS Vsftpd服務相關部件: [root@KcentOS5 ~]# yum install vsftpd* 2.確認安裝PAM服務相關部件: [root@KcentOS5 ~]# yum install pam* 開發包,其實不裝也沒有關系,主要的目的是確認PAM。 3.安裝DB4部件包: 這里要特別安裝一個db4的包,用來支持文件數據庫。 [root@KcentOS5 ~]# yum install db4* CentOS vsftp系統帳戶 1.建立CentOS vsftp服務的宿主用戶: [root@CentOS5 /]#chmod 700 /home/vftpsite [root@KcentOS5 ~]# useradd vsftpd -s /sbin/nologin 默認的Vsftpd的服務宿主用戶是root,但是這不符合安全性的需要。這里建立名字為vsftpd的用戶,用他來作為支持Vsftpd的服務宿主用戶。由于該用戶僅用來支持Vsftpd服務用,因此沒有許可他登陸系統的必要,并設定他為不能登陸系統的用戶。[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser 2.建立CentOS vsftp虛擬宿主用戶: [root@KcentOS5 nowhere]# useradd overlord -s /sbin/nologin 本篇主要是介紹Vsftp的虛擬用戶,虛擬用戶并不是系統用戶,也就是說這些FTP的用戶在系統中是不存在的。他們的總體權限其實是集中寄托在一個在系統中的某一個用戶身上的,所謂Vsftpd的虛擬宿主用戶,就是這樣一個支持著所有虛擬用戶的宿主用戶。由于他支撐了FTP的所有虛擬的用戶,那么他本身的權限將會影響著這些虛擬的用戶,因此,處于安全性的考慮,也要非分注意對該用戶的權限的控制,該用戶也絕對沒有登陸系統的必要,這里也設定他為不能登陸系統的用戶。 (這里插一句:原本在建立上面兩個用戶的時候,想連用戶主路徑也不打算給的。本來想加上 -d /home/nowhere 的,據man useradd手冊上講 述:“ -d, --home HOME_DIR The new user will be created using HOME_DIR as the value for the user鈙 login directory. The default is to append the LOGIN name to BASE_DIR and use that as the login directory name. The directory HOME_DIR does not have to exist but will not be created if it is missing. 使用-d參數指定用戶的主目錄,用戶主目錄并不是必須存在的。如果沒有存在指定的目錄的話,那么它將不會被建立”。結果我嘗試 -d /home/nowhere 指定到一個并不存在的目錄的時候,我KAO!竟然給我自己新建了一個= =#) 【原創】FTP服務時互聯網上比較古老的一種應用,至今Interner應用面非常廣泛,但令管理員頭痛不已的是其用戶管理,既多且雜,如何解決這一問題呢?使用MySQL與ProFTP或VsFTP軟件結合可以搭建一個高效、穩定且集中管理的FTP服務器。本來就來介紹一下如何搭建一個方便管理的基于MySQL數據庫的FTP服務器。
安裝ProFTPD ◆切換到proftpd-1.3.2.tar.gz文件所在的目錄,執行以下步驟安裝: #tar zxvf proftpd-1.3.2.tar.gz #cd proftpd-1.3.2 #./configure--prefix=/soft/program/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql 此參數將支持MySQL和Quota模塊添加進來。 --with-includes=/soft/program/mysql/include/mysql 上述參數指定MySQL中include的目錄路徑。 --with-libraries=/soft/program/mysql/lib/mysql 此參數指定MySQL中lib的目錄路徑。 #make #make install 使用如下命令建立一個用于管理ProFTPD的Linux系統賬號和組。 #groupadd -g 2009 ftpgroup #useradd -u 2009 –s /bin/false -d /storage -g ftpgroup ftpuser #chown -R ftpuser.ftpgroup /storage #chmod –R go-wrx- /storage #chmod –R u+wrx /storage 簡單修改ProFTPD配置文件,使之正常運行: #cd /soft/program/proftpd/etc 用編輯器打開proftpd.conf,修改一下的內容: #Set the user and group under which the server will run. User ftpuser Group ftpgroup
◆啟動ProFTPD 啟動Proftpd同樣有兩種方法,即手工啟動和自動啟動,其中手工啟動操作如下: #cd /soft/program/proftpd/sbin/ #./proftpd 此時一個基本的FTP服務器已經搭建成,可以進行測試了。需要注意的是,啟動時如果出現具有以下信息的錯誤: error while loading shared libraries:libmysqlclient.so.15:cannot open shared object file:No such file or directory 通常的解決辦法如下: #cd /etc 用文本工具打開ld.so.conf,添加以下的內容/soft/program/mysql/lib/mysql #ldconflg 更新ld.so cache file。 要讓ProFTPD自動啟動在/etc/rc.d/rc.local中加入以下的內容,開機即可自啟動ProFTPD: /soft/program/proftpd/sbin/proftpd
二、MySQL與ProFTPD組合 在MySQL 中建立一個名為ftp的數據庫,在該數據庫中建立以下的四個表: ◆登錄FTP服務器的用戶表ftpusers,字段信息如下所示,這些字段是必需的,其他字段根據自己的需要添加,參考字段如下: 'userid' text NOT NULL #用戶登錄賬號# 'passwd' text NOT NULL #用戶登錄密碼# 'uid' int(11)NOT NULL default '2009', #與Linux系統賬號ftpuser的UID號一致# 'gid' int(11)NOT NULL default '2009', #與Linux系統組# ftpgroup 的GID號一致'homedir' text,用戶文件上傳下載目錄,如賬號名為abc,此處就填寫/storage/abc,'shell' text default ,'/sbin/nologin'這個是用來指定用戶是否能登錄Linux系統,這里默認的是不能登錄。 ◆FTP用戶歸屬表ftpgroups,字段信息如下所示,關于建立該組的目的將在quotalimits表中說明 'groupname' text NOT NULL #組名# 'gid' smallint(6) NOT NULL default'0',#組的id號# 'memembers' text NOT NULL #成員# ◆用于設置磁盤限額相關信息的表quotalimits和quotatallies,這兩個表的字段請不要改動,它是與ProFTPD的配置文件緊密聯系,quotalimits表的字段信息如下: 'name' varchar(30)default NULL, 'quota_type' enum('user','group','class','all')NOT NULL default 'user', 'per_session' enum('false','true')NOT NULL default'false', 'limit_type' enum('soft','hard')NOT NULL default'soft', 'bytes_in_avail'float NOT NULL default'0', 'bytes_out_avail'float NOT NULL default'0', 'bytes_xfer_avail'float NOT NULL default'0', 'files_in_avail'int(10) unsigned NOT NULL default'0', 'files_out_avail'int(10)unsigned NOT NULL default'0', 'files_xfer_avail'int(10)unsigned NOT NULL default'0' 需要注意的是,name應該這樣理解,既能表示單個用戶,也能表示用戶組名。如果在quota_type(限額類型)中使用group來認證的話,那就得在這里設置組名,這樣整組都具有統一的磁盤限額的特性,當然要在ftpgroups表中插入組記錄,并且在member字段中得把用戶一個一個的列進去。默認值可以為空NULL。如果為空,則針對所在有quota_type中設置的類型,比如在quota_type中設置為user,就是針對所有ftpusers中的用戶起作用,如果是group名,也是對ftpgroups所有組作用。quota_type磁盤限額類型,可以設置為用戶,也可以設置為用戶組group。如果name寫的是用戶組,這里就得設置為group來認定。默認為user認證。per_session默認為false.limit_type默認為soft。Bytes_in_avail用戶占用空間大小,也就是FTP用戶空間容量,單位是byte,默認為0,0是不受限制,以下同理。bytes_out_avail所有下載文件的總和,默認為0。 bytes_xfer_avail一個用戶上傳下載流量總和,默認為0。files_in_avail限制上傳文件總和,默認為0。files_out_avail限制下載文件個數總計,默認為0。files_xfer_avail允許下載和上傳的文件總和,默認為0。Quotatallies表的字段信息,各字段信息參照quotalimits。配置參考參數如下:
name VARCHAR(30)NOT NULL, quota_type ENUM("user","group","class","all")NOT NULL, bytes_in_used FLOAT NOT NULL, bytes_out_used FLOAT NOT NULL, bytes_xfer_used FLOAT NOT NULL, files_in_used INT UNSIGNED NOT NULL, files_out_used INT UNSIGNED NOT NULL, files_xfer_used INT UNSIGNED NOT NULL 此外,在proftpd.conf文件中增加以下的內容: ◆數據庫連接的信息,ftp是數據庫名,localhost是主機名,root是連接數據庫的用戶名,123456是密碼。 root 123456 ◆數據庫認證的類型,Plaintext表示明文認證方式 SQLAuthTYpes Backend Plaintext ◆指定用來做用戶認證的表的有關信息 SALUserlnfo ftpusers userid passwd uid gid homedir shell SQLGrouplnfo ftpgroups groupname gid members ◆校驗數據表 SQLAuthenticate users groups usersetfast groupsetfast ◆如果home目錄不存在,則系統會根據ftpusers表中的home字段。 新建一個目錄: SQLHomedirOnDemand on ◆打開磁盤限額引擎 QuotaEngine on ◆設置磁盤限額 QuotaDirectoryTally on