s3cmd یک ابزار خط فرمان برای ساخت باکِتهای s3، ارسال، استخراج و مدیریت داده برای منبع ذخیره Amazon s3 است. در این مطلب به نحوه استفاده و نصب ابزار s3cmd در سیستمعاملهای CentOS، RHEL، OpenSUSE، اوبونتو، دبیان و LinuxMint خواهیم پرداخت. همچنین به وسیله خط فرمان در چند گام ساده، باکتهای s3 را...
1400/03/265085 بازدید
s3cmd یک ابزار خط فرمان برای ساخت باکِتهای s3، ارسال، استخراج و مدیریت داده برای منبع ذخیره Amazon s3 است. در این مطلب به نحوه استفاده و نصب ابزار s3cmd در سیستمعاملهای CentOS، RHEL، OpenSUSE، اوبونتو، دبیان و LinuxMint خواهیم پرداخت. همچنین به وسیله خط فرمان در چند گام ساده، باکتهای s3 را مدیریت میکنیم. البته برای نصب s3cmd در ویندوز سرور رویکردهای دیگری وجود دارد که در فرصت مناسب به آن میپردازیم. ضمناً این امکان وجود دارد که باکت s3 به عنوان یک درایو محلی در سیستم با استفاده از فرمت S3FS در FUSE شناخته شود.
ابزار s3cmd در لینوکس برای مدیریت باکتهای s3
نصب s3cmd در لینوکس
ابزار s3cmd در توزیعهای لینوکس CentOS، CentOS و اوبونتو به صورت پیشفرض در منابع rpm وجود دارد. بر این اساس، میتوانید به راحتی آن را با استفاده از فرمانهای زیر نصب کنید.
در CentOS/RHEL داریم:
در صورتی که نتوانید از طریق برنامههای مدیریت بستههای سیستمعاملتان به آخرین نسخه ابزار s3cmd دست پیدا کنید، میتوانید این کار را با استفاده از کد منبع نیز امتحان کنید. با بازدید از این آدرس و یا فرمان زیر میتوانید آخرین نسخه s3cmd را دریافت نمایید.
حالا میتوانید با کمک فرمان زیر و از طریق فایلهای منبع، آن را نصب کنید.
php
1cd s3cmd-2.0.123sudo python setup.py install
تنظیم محیط s3cmd
برای تنظیم s3cmd میتوانیم درخواست Access Key و Secret Key از حساب کاربری S3 Amazon داشته باشیم. این کلیدهای امنیتی را میتوانید از صفحه aws securityCredentials دریافت کنید. در اینجا از شما خواسته میشود که به حساب کاربری آمازون خود وارد شوید.
پس از دریافت این کلیدها، تنظیمات ابزار s3cmd را با استفاده از فرمان زیر انجام دهید.
php
1# s3cmd --configure
مقادیر جدید وارد کنید و یا با زدن دکمه Enter، مقادیر پیشفرض را تأیید نمایید. همچنین به راهنمای کاربری برای توضیحات بیشتر در مورد گزینهها توجه کنید.
php
1Enter new values or accept defaults in brackets with Enter.23Refer to user manual for detailed description of all options.45Access key and Secret key are your identifiers for Amazon S367Access Key: xxxxxxxxxxxxxxxxxxxxxx89Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1011Encryption password is used to protect your files from reading1213by unauthorized persons while in transfer to S31415Encryption password: xxxxxxxxxx1617Path to GPG program [/usr/bin/gpg]:1819When using secure HTTPS protocol all communication with Amazon S32021servers is protected from 3<sup>rd</sup> party eavesdropping. This method is2223slower than plain HTTP and can’t be used if you’re behind a proxy2425Use HTTPS protocol [No]: Yes2627New settings:2829Access Key: xxxxxxxxxxxxxxxxxxxxxx3031Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx3233Encryption password: xxxxxxxxxx3435Path to GPG program: /usr/bin/gpg3637Use HTTPS protocol: True3839HTTP Proxy server name:4041HTTP Proxy server port: 04243Test access with supplied credentials? [Y/n] Y4445Please wait, attempting to list all buckets…4647Success. Your access key and secret key worked fine J4849Now verifying that encryption works…5051Success. Encryption and decryption worked fine J5253Save settings? [y/N] y5455Configuration saved to ‘/root/.s3cfg’
موارد استفاده ابزار خط فرمان s3cmd
وقتی تنظیمات به اتمام رسید، میتوانید استفاده از s3cmd را شروع کنید. این ابزار برای منظورهای زیر میتواند مورد استفاده قرار گیرد.
۱) تهیه لیست از تمام باکتهای S3
از فرمان زیر برای تهیه لیست از تمام باکتهای S3 در حساب کاربری aws خودتان استفاده کنید.
php
1# s3cmd ls
۲) ایجاد باکت جدید
برای ساخت یک باکت جدید در Amazon s3 از فرمان زیر کمک بگیرید. این فرمان موجب ساخت یک باکت جدید با نام ariaservice در حساب کاربری S3 خواهد شد.
php
1# s3cmd mb s3://ariaservice23Bucket 's3://ariaservice/' created
۳) ارسال فایل در باکت
فرمان موجب ارسال فایلی به نام file.txt به باکت s3 میشود.
php
1# s3cmd put file.txt s3://ariaservice/
file.txt -> s3://ariaservice/file.txt [1 of 1]
190216 of 190216 100% in 0s 1668.35 kB/s done
[/php]
۴) ارسال دایرکتوری در باکت
در صورتی که بخواهیم کل دایرکتوری را آپلود کنیم، از گزینه -r استفاده خواهیم کرد.
php
1# s3cmd put -r backup s3://ariaservice/23backup/file1.txt -> s3://ariaservice/backup/file1.txt [1 of 2]459984 of 9984 100% in 0s 18.78 kB/s done67backup/file2.txt -> s3://ariaservice/backup/file2.txt [2 of 2]890 of 0 0% in 0s 0.00 B/s done
حتماً دقت کنید که علامت اسلش یا / بعد از عنوان دایرکتوری (مثلاً backup/) نداشته باشید. در غیر این صورت، فقط محتوای این دایرکتوری ارسال خواهد شد.
php
1# s3cmd put -r backup/ s3://ariaservice/23backup/file1.txt -> s3://ariaservice/file1.txt [1 of 2]459984 of 9984 100% in 0s 21.78 kB/s done67backup/file2.txt -> s3://ariaservice/file2.txt [2 of 2]890 of 0 0% in 0s 0.00 B/s done
۵) لیست دادههای باکت s3
گزینه ls در ابزار s3cmd موجب تهیه لیست از تمام آبجکتهای باکت s3 میشود.
php
1# s3cmd ls s3://ariaservice/23DIR s3://ariaservice/backup/452013-09-03 10:58 190216 s3://ariaservice/file.txt
۶) دریافت فایل از باکت
گاهی اوقات لازم است که از باکت s3 فایل دانلود کنید. در این صورت از فرمان زیر استفاده خواهیم کرد.
php
1# s3cmd get s3://ariaservice/file.txt
s3://ariaservice/file.txt -> ./file.txt [1 of 1]
4 of 4 100% in 0s 10.84 B/s done
[/php]
۷) حذف داده از باکت S3
برای حذف فایلها و فولدرهای باکت s3 از فرمانهای زیر استفاده میکنیم.
php
1Removing file from s3 bucket23# s3cmd del s3://ariaservice/file.txt45File s3://ariaservice/file.txt deleted67Removing directory from s3 bucket89# s3cmd del s3://ariaservice/backup1011File s3://ariaservice/backup deleted
۸) حذف باکت S3
اگر به باکت S3 احتیاجی نداشته باشیم، میتوانیم بهراحتی با استفاده از فرمان زیر آن را حذف کنیم. البته حتماً قبل از پاککردن باکت، از خالیبودن آن مطمئن شوید.
php
1# s3cmd rb s3://ariaservice23ERROR: S3 error: 409 (BucketNotEmpty): The bucket you tried to delete is not empty
پیغام خطای بالا به خاطر خالی نبودن باکت s3 است.
برای حذف باکت، ابتدا تمام آبجکتهای داخل آن را پاک کنید و سپس دوباره فرمان را به کار بگیرید.