s3cmd连接leofs集群及基本操作
2017-08-28 本文已影响35人
四冶读史
1.概述
s3cmd是一款Amazon s3命令行工具,支持bucket的创建和删除,支持文件上传、下载、同步等,还能进行权限设置。
2.下载安装s3cmd
cd /opt
wget https://sourceforge.net/projects/s3tools/files/s3cmd/2.0.0/s3cmd-2.0.0.tar.gz
tar -zxvf s3cmd-2.0.0.tar.gz
cd s3cmd-2.0.0
python setup.py install
pip install s3cmd
若无pip,请使用yum install -y python-pip安装
3.连接leofs
s3cmd --configure
输入
Access Key
Secret Key
其它直接回车或选择N
修改配置文件
vi .s3cfgcheck_ssl_certificate = False # 禁用ssl证书检测
check_ssl_hostname = False # 禁用ssl证书检测
host_base = anti-poverty.com:8080 # endpoint
host_bucket = anti-poverty.com:8080
4.s3cmd基本操作
1.创建bucketbucket可理解为根目录,名称不能重复,必须唯一
s3cmd mb s3://test
Bucket 's3://test/' created
2.列出所有的bucket
s3cmd ls
2017-08-23 07:15 s3://anti-poverty
2017-08-23 07:21 s3://images
2017-08-23 07:12 s3://test
3.删除空bucketbucket下有文件是不能删除的,或者强制删除(--recursive)
s3cmd rb s3://images
Bucket 's3://images/' removed
4.上传文件
s3cmd put s3cmd-2.0.0.tar.gz s3://test
WARNING: Module python-magic is not available. Guessing MIME types based on file extensions.
upload: 's3cmd-2.0.0.tar.gz' -> 's3://test/s3cmd-2.0.0.tar.gz' [1 of 1] 115290 of 115290 100% in 0s 748.81 kB/s done
5.列出bucket下所有文件
s3cmd ls s3://test
2017-08-23 07:45 115290 s3://test/s3cmd-2.0.0.tar.gz
6.删除文件
s3cmd del s3://test/s3cmd-2.0.0.tar.gz
delete: 's3://test/s3cmd-2.0.0.tar.gz'
7.上传文件并设置权限
s3cmd put --acl-public test.txt s3://test
WARNING: Module python-magic is not available. Guessing MIME types based on file extensions.
upload: 'test.txt' -> 's3://test/test.txt' [1 of 1]
0 of 0 0% in 0s 0.00 B/s done
Public URL of the object is: http://anti-poverty.com:8080/test/test.txt
8.批量上传
s3cmd put -r folder s3://test/
s3cmd put -r folder/ s3://test/
第一条命令会连同folder一并上传,相当于上传整个目录第二条命令只会上传folder下的文件。
9.下载文件
s3cmd get s3://test/file.txt file.txt
10.批量下载
s3cmd fet s3://test/* ./
11.下载整个目录
s3cmd fet s3://test/folder
s3cmd fet s3://test/folder/
第一条命令会连同folder及其子目录一并下载,并在本地创建相同的目录结构第二条命令不会在本地创建folder目录。
12.获取bucket所占空间大小
s3cmd du -H s3://test
12 1 objects s3://test/
13.同步这是s3cmd的难点,也是最实用的地方。同步是需要进行MD5校验的,只有当文件不同时,才会传输。
1)同步当前目录下所有文件
s3cmd sync ./ s3://test/
2)加 "--dry-run"参数后,仅列出需要同步的项目,不实际进行同步
s3cmd sync --dry-run ./ s3://test/
3)加 " --delete-removed"参数后,会删除本地不存在的文件
s3cmd sync --delete-removed ./ s3://test/
4)加 " --skip-existing"参数后,不进行MD5校验,直接跳过本地已存在的文件
s3cmd sync --skip-existing ./ s3://test/
5)排除包含
s3cmd sync --dry-run --exclude '*.txt' --include 'folder2/*' ./ s3://test/
exclude: folder1/file1-1.txt
upload: ./folder2/file2-2.txt -> s3://test/folder2/file2-2.txt
更多的操作见官网
参考地址:
http://s3tools.org/download
http://blog.csdn.net/blade2001/article/details/8506604
同步http://s3tools.org/s3cmd-sync