国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL下數據備份系統解決方案

2019-09-08 23:26:37
字體:
來源:轉載
供稿:網友
    隨著計算機網絡的普及,計算機病毒有了快速傳播的機會,并且對數據文件的破壞日益嚴重,用戶需要經常對個人重要數據做異地備份?;诙嘤脩艉蛿祿[私的考慮,提出了個人數據備份系統解決方案。它利用網絡存儲設備具有的大容量、高可靠性、高安全性特點,為用戶提供一定容量的空間來保存個人數據,同時利用軟件的權限管理很好地實現個人數據的保密性。

    目前Linux下FTP服務器軟件主要有Wu-FTP和ProFTPD兩種。Wu-FTP是Red Hat Linux預裝軟件,但安全漏洞很多。ProFTPD針對Wu-FTP的弱項而開發,除改進了安全性外,還具備許多特點,如設置簡單、能以Stand-alone模式運行等。ProFTPD已經成為繼Wu-FTP之后最為流行的FTP服務器軟件之一。

    ProFTPD在1.2版本之前使用Linux用戶賬號來管理用戶,即使用口令文件。該方式存在很多不足,與數據庫操作相比,用戶賬號的增加、口令的修改及賬號的刪除顯得十分復雜,并且文件無法支持并發讀寫;在Linux中用戶賬號具有Telnet的權限,安全上存在隱患;口令文件只有root賬號可以修改,如果使用瀏覽器方式修改此文件,在技術上有一定難度。

    在ProFTPD 1.2.4版中增加了數據庫管理用戶的功能,目前只支持MySQL數據庫,并且該賬號只適用于FTP 服務器,不存在安全上的隱患。本文使用的開發平臺是Linux + ProFTPD + MySQL組合。

    總體設計

    系統后臺采用FTP服務器來為用戶提供管理文件功能,可使用支持FTP 功能的各種軟件來操作數據文件。解決方案實現用戶賬號自動申請受理、密碼修改,網絡管理人員可以使用瀏覽器來管理賬號修改空間限量、修改口令及刪除賬號等功能。

    系統的核心是如何使用開發語言來動態地配置ProFTPD,實現對數量眾多用戶的賬號管理。

    解決方案詳細內容

    有關ProFTPD的安裝和配置文件內容的資料可以詳見系統文檔,本文重點介紹和數據庫有關的部分。

    1. 安裝ProFTPD

    (1)安裝MySQL數據庫,創建MySQL的安裝目錄的符號,連接到/usr/local/mysql。

    (2)編譯前的配置,將MySQL和空間限量模塊增加到編譯的選項中,代碼如下:

    # ./configure --with-includes = /usr/local/mysql/include --with-libraries=/usr/local/mysql/lib/mysql --with- modules=mod_sql:mod_sql_mysql:mod_quota

    2. 增加用戶

    在MySQL中創建FTPusers數據庫和users表用來保存FTP賬號信息,代碼如下:

CREATE TABLE users (   userid varchar(50) NOT NULL,    //用戶的FTP 賬號名稱   password varchar(50),    // 用戶的FTP賬號密碼   uid int(5) DEFAULT '0' NOT NULL,    //用戶主目錄的 uid   gid int(5) DEFAULT '65533' NOT NULL,    //用戶主目錄的 gid   homedir varchar(255),    //用戶主目錄   count int(11) DEFAULT '0',    //登陸次數   ftime timestamp(14),    //最后一次登陸時間   shell varchar(255) DEFAULT '  /bin/bash',   PRIMARY KEY (userid)    //主關鍵字);


    在proftpd.conf中增加有關MySQL的配置,代碼如下:

SQLConnectInfo ftpusers@MySQL服務器名 username password //數據庫連接SQLDoGroupAuthoffSQLAuthTypesPlaintextSQLDoAuthonSQLHomedirOnDemandonSQLUserTableusers  //指定使用的表名SQLUsernameFielduserid  //以下信息需要與users表中的字段對應SQLPasswordFieldpasswordSQLHomedirFieldhomedir  SQLLoginCountFieldcountSQLShellFieldshellSQLAuthoritativeoffSQLLogStatsonSQLMinUsergid99SQLMinUseruid14SQLLogDirsfcdirSQLDefaultgid99


    創建用戶時需要在表中增加記錄,即完成賬號的增加。在用戶第一次使用該賬號登陸時,系統自動創建用戶主目錄并依據uid和gid的值來設置目錄的用戶和組。根據配置文件中的缺省空間限量的值生成限量文件。以下是ProFTPD.conf中設置缺省空間限量的配置:

DefaultQuota204800000 //200MB大小QuotaTypehard


    3. 刪除用戶

    刪除用戶需要完成兩方面工作:一方面需要對MySQL的users表做相應的刪除;另一方面要刪除用戶主目錄。需要注意的是,由于采用瀏覽器方式,開發系統的執行用戶應具有對用戶主目錄的寫權限。用戶主目錄的用戶和組是由users表中的uid和gid來確定的。

    4. 修改空間限量

    在用戶主目錄創建后,系統自動生成.quota空間限量文件。該文件只能被root修改,文件的格式為“總容量 使用的容量”,賬號管理系統只需使用新的限量文件覆蓋即可。對“使用的容量”,FTP服務器每次登陸時會自動計算。如何使軟件系統具有root權限,可以參看“sudoers”。

    5.日志記錄

    從安全角度考慮,日志是很重要的一部分。傳統的日志都是記錄到文件中,而ProFTPD提供了將日志記錄到數據庫中的功能。這既方便了日志的查詢,又極大地提高了日志查詢速度。

    首先需要在MySQL數據庫中創建FTP_log數據表,代碼如下:

CREATE TABLE FTP_log (   id int(12) unsigned DEFAULT '0' NOT NULL auto_increment,   //主關鍵字   filename varchar(255),    //文件名   filesize int(10) unsigned,   //文件大小   email varchar(20) NOT NULL,    //用戶的賬號   ip varchar(15) NOT NULL,    //用戶的ip地址   action varchar(255),    //用戶操作的內容   ftime datetime,    //操作的時間   PRIMARY KEY (id));


    修改ProFTPD.conf文件,將“日志記錄到文件”關閉,設置如下:

TransferLognone


    增加關于日志的配置,需要把用戶的上載和下載及刪除操作記錄到日志中,記錄的內容用戶可以定置。例如:

SQLLog RETR,STOR,DELE insert FTP_log "null,'%f', %b, '%u','%h','%r',now()"


    被記錄的操作有以下幾個:

◆RETR,文件的下載;

◆STOR,文件的上傳;

◆DELE,文件的刪除。

其中日志記錄有以下內容:

◆%f,上載或下載的文件名稱包含絕對路徑;

◆%b,文件的大小,以字節為單位;

◆%u,用戶使用的FTP賬號;

◆%h,用戶的IP地址;

◆now(),為MySQL提供系統時間函數。

    結束語

    在詳細了解系統關鍵技術后,開發語言可以根據實際情況來選擇,并可結合電子郵件服務器,實現賬號和密碼的統一,方便用戶操作。有關MySQL和ProFTPD的詳細配置等問題,由于篇幅有限就不一一闡述。

MYSQL

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘阴县| 施甸县| 眉山市| 赤水市| 西平县| 南陵县| 抚州市| 松阳县| 钦州市| 神池县| 天水市| 彭州市| 吉水县| 阜康市| 隆昌县| 晋中市| 河东区| 沁源县| 孝义市| 天水市| 康保县| 腾冲县| 七台河市| 壶关县| 南木林县| 微山县| 黄大仙区| 安化县| 兰州市| 漳平市| 泌阳县| 青川县| 八宿县| 宿迁市| 扶余县| 休宁县| 德钦县| 奇台县| 麟游县| 会理县| 浠水县|