俊星的BLOG

#

Mysql备份

1、编写相关的备份脚本backup.bat:
@echo off
mysqldump -uroot -pXXX test>D:\db_backup\test%date:~0,10%.sql
其中“%date:~0,10%”表示取出日期后截取前10个字符,因为在目标机器运行%date%得到的是“2010-10-13 星期三”,不符合要求。

2、执行过程中,报如下错误:
mysqldump:   Got   error:   1045:   Access   denied   for   user:   'root@localhost '   (Using   password:   NO)   when   trying   to   connect
原因是权限不够,处理措施如下:

C:\Documents and Settings\Administrator.SPARK001>mysql -uroot -pXXX
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1450
Server version: 5.0.67-community MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected (0.06 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


3、运行bat文件后,即生成了“test2010-10-13.sql”类的文件,最后通过设置WINDOWS系统工具中的任务计划功能,即可实现自动备份。

posted @ 2010-10-13 18:15 俊星 阅读(152) | 评论 (0)编辑 收藏

Ftp客户端简单编程

基于APACHE COMMONS中的NET包提供的FTP客户端类库实现,下面是具体的代码:

package test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;

import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class ClientTest {
    
public static void main(String[] args) {
        ClientTest main 
= new ClientTest();
        FTPClient ftp 
= new FTPClient();
        
// 设置一个监听
        ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
        
try {
            ftp.connect(
"localhost"2121);
            
int reply = ftp.getReplyCode();
            
if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                System.out.println(
"FTP server refused connection");
            }

            
// 登录
            ftp.login("admin""admin");
            main.uploadFile(ftp);
            main.listFiles(ftp);
            main.downloadFile(ftp);
            main.deleteFile(ftp);
            main.listFiles(ftp);
            
// 退出
            ftp.logout();
        }
 catch (IOException e) {
            e.printStackTrace();
            
if (ftp.isConnected()) {
                
try {
                    ftp.disconnect();
                }
 catch (Exception e2) {
                }

            }

        }

    }

    
    
// 列举文件
    private void listFiles(FTPClient ftp) throws IOException {
        System.out.println(
"------------START------------");
        
for (FTPFile f : ftp.listFiles()) {
            System.out.println(f.getName() 
+ " " + f.getSize());
        }

        System.out.println(
"------------END------------");
    }


    
// 上传文件
    private void uploadFile(FTPClient ftp) throws IOException {
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        ftp.enterLocalPassiveMode();
        InputStream input 
= new FileInputStream("res/conf/dushu.jpg");
        ftp.storeFile(
"dushu.jpg", input);
        input.close();
    }


    
// 下载文件
    private void downloadFile(FTPClient ftp) throws IOException {
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        ftp.enterLocalPassiveMode();
        OutputStream output 
= new FileOutputStream("res/conf/dushu_down.jpg");
        ftp.retrieveFile(
"dushu.jpg", output);
        output.close();
    }


    
// 删除文件
    private void deleteFile(FTPClient ftp) throws IOException {
        ftp.deleteFile(
"dushu.jpg");
    }

}


输出如下:
220 Service ready for new user.
USER admin
331 User name okay, need password for admin.
PASS admin
230 User logged in, proceed.
TYPE I
200 Command TYPE okay.
PASV
227 Entering Passive Mode (127,0,0,1,13,12)
STOR dushu.jpg
150 File status okay; about to open data connection.
226 Transfer complete.
------------START------------
SYST
215 UNIX Type: Apache FtpServer
PASV
227 Entering Passive Mode (127,0,0,1,13,14)
LIST
150 File status okay; about to open data connection.
226 Closing data connection.
dushu.jpg 
83694
------------END------------
TYPE I
200 Command TYPE okay.
PASV
227 Entering Passive Mode (127,0,0,1,13,16)
RETR dushu.jpg
150 File status okay; about to open data connection.
226 Transfer complete.
DELE dushu.jpg
250 Requested file action okay, deleted /dushu.jpg.
------------START------------
PASV
227 Entering Passive Mode (127,0,0,1,13,18)
LIST
150 File status okay; about to open data connection.
226 Closing data connection.
------------END------------
QUIT
221 Goodbye.

最后,提供一张自己拍的读书图:

posted @ 2010-10-12 15:37 俊星 阅读(1021) | 评论 (0)编辑 收藏

APACHE FTPserver 初探

目前搭建起来了一个可以运行的源代码环境,已经打包上传到:/Files/kinkding/ftpserver.rar

posted @ 2010-10-11 18:44 俊星 阅读(202) | 评论 (0)编辑 收藏

Window下FTP命令使用

直接在命令行中,使用FTP命令进行FTP的相关操作:


C:\Documents and Settings\dingjunxing>ftp
ftp> open localhost 2121
Connected to DINGJX.
220 Service ready for new user.
User (DINGJX:(none)): admin
331 User name okay, need password for admin.
Password:
230 User logged in, proceed.
ftp> dir
200 Command PORT okay.
150 File status okay; about to open data connection.
-rw-------   1 user group        67646 Oct 11 17:50 03_photos.ico
226 Closing data connection.
ftp: 收到 67 字节,用时 0.03Seconds 2.16Kbytes/sec.
ftp> ls
200 Command PORT okay.
150 File status okay; about to open data connection.
03_photos.ico
226 Closing data connection.
ftp: 收到 15 字节,用时 0.00Seconds 15000.00Kbytes/sec.
ftp> get 03_photos.ico
200 Command PORT okay.
150 File status okay; about to open data connection.
226 Transfer complete.
ftp: 收到 67680 字节,用时 0.02Seconds 4230.00Kbytes/sec.
ftp> delete 03_photos.ico
250 Requested file action okay, deleted /03_photos.ico.
ftp> put 03_photos.ico
200 Command PORT okay.
150 File status okay; about to open data connection.
226 Transfer complete.
ftp: 发送 67680 字节,用时 0.02Seconds 4230.00Kbytes/sec.
ftp> put F:\eclipse\workspace\ftpserver\res\ftpserver.jks
200 Command PORT okay.
150 File status okay; about to open data connection.
226 Transfer complete.
ftp: 发送 1242 字节,用时 0.00Seconds 1242000.00Kbytes/sec.
ftp> mkdir test
257 "/test" created.
ftp> bye
221 Goodbye.

posted @ 2010-10-11 18:29 俊星 阅读(3508) | 评论 (0)编辑 收藏

ftp的port和pasv模式(转)

该文为转载,原文地址:http://hi.baidu.com/xianyang1981/blog/item/f17d6f6d8650c0f842169427.html

一、ftp的port和pasv模式的工作方式
       FTP使用2个TCP端口,首先是建立一个命令端口(控制端口),然后再产生一个数据端口。国内很多教科书都讲ftp使用21命令端口和20数据端口,这个应该是教书更新太慢的原因吧。实际上FTP分为主动模式和被动模式两种,ftp工作在主动模式使用tcp 21和20两个端口,而工作在被动模式会工作在大于1024随机端口。FTP最权威的参考见RFC 959,有兴趣的朋友可以仔细阅读
ftp://nic.merit.edu/documents/rfc/rfc0959.txt的文档了解FTP详细工作模式和命令。目前主流的FTP Server服务器模式都是同时支持port和pasv两种方式,但是为了方便管理安全管理防火墙和设置ACL了解FTP Server的port和pasv模式是很有必要的。

1.1 ftp port模式(主动模式)
       主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口)。紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。最后服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。ftp port模式工作流程如下图所示:

针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1、客户端口>1024端口到FTP服务器的21端口 (入:客户端初始化的连接 S<-C)
2、FTP服务器的21端口到客户端>1024的端口(出:服务器响应客户端的控制端口 S->C)
3、FTP服务器的20端口到客户端>1024的端口(出:服务器端初始化数据连接到客户端的数据端口 S->C)
4、客户端>1024端口到FTP服务器的20端口(入:客户端发送ACK响应到服务器的数据端口 S<-C)

 

1.2 ftp pasv模式(被动模式)
       在被动方式FTP中,命令连接和数据连接都由客户端。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。ftp pasv模式工作流程如下图所示:

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1、客户端>1024端口到服务器的21端口 (入:客户端初始化的连接 S<-C)
2、服务器的21端口到客户端>1024的端口 (出:服务器响应到客户端的控制端口的连接 S->C)
3、客户端>1024端口到服务器的大于1024端口 (入:客户端初始化数据连接到服务器指定的任意端口 S<-C)
4、服务器的大于1024端口到远程的大于1024的端口(出:服务器发送ACK响应和数据到客户端的数据端口 S->C)

posted @ 2010-10-11 17:55 俊星 阅读(8024) | 评论 (0)编辑 收藏

仅列出标题
共10页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last