بلاگ/آشنایی با ابزار s3cmd در لینوکس
به‌روز شده

آشنایی با ابزار s3cmd در لینوکس

s3cmd یک ابزار خط فرمان برای ساخت باکِت‌های s3، ارسال، استخراج و مدیریت داده برای منبع ذخیره Amazon s3 است. در این مطلب به نحوه استفاده و نصب ابزار s3cmd در سیستم‌عامل‌های CentOS، RHEL، OpenSUSE، اوبونتو، دبیان و LinuxMint خواهیم پرداخت. همچنین به وسیله خط فرمان در چند گام ساده، باکت‌های s3 را...

1400/03/265085 بازدید
آشنایی با ابزار s3cmd در لینوکس
s3cmd یک ابزار خط فرمان برای ساخت باکِت‌های s3، ارسال، استخراج و مدیریت داده برای منبع ذخیره Amazon s3 است. در این مطلب به نحوه استفاده و نصب ابزار s3cmd در سیستم‌عامل‌های CentOS، RHEL، OpenSUSE، اوبونتو، دبیان و LinuxMint خواهیم پرداخت. همچنین به وسیله خط فرمان در چند گام ساده، باکت‌های s3 را مدیریت می‌کنیم. البته برای نصب s3cmd در ویندوز سرور رویکردهای دیگری وجود دارد که در فرصت مناسب به آن می‌پردازیم. ضمناً این امکان وجود دارد که باکت s3 به عنوان یک درایو محلی در سیستم با استفاده از فرمت S3FS در FUSE شناخته شود.
آشنایی با ابزار s3cmd در لینوکس
ابزار s3cmd در لینوکس برای مدیریت باکت‌های s3

نصب s3cmd در لینوکس

ابزار s3cmd در توزیع‌های لینوکس CentOS، CentOS و اوبونتو به صورت پیش‌فرض در منابع rpm وجود دارد. بر این اساس، می‌توانید به راحتی آن را با استفاده از فرمان‌های زیر نصب کنید. در CentOS/RHEL داریم:
php
yum install s3cmd
در اوبونتو / دبیان:
php
sudo apt-get install s3cmd
در SUSE لینوکس اینترپرایز سرور 11:
php
zypper addrepo http://s3tools.org/repo/SLE_11/s3tools.repozypper install s3cmd

نصب آخرین نسخه s3cmd با استفاده از کد منبع

در صورتی که نتوانید از طریق برنامه‌های مدیریت بسته‌های سیستم‌عامل‌تان به آخرین نسخه ابزار s3cmd دست پیدا کنید، می‌توانید این کار را با استفاده از کد منبع نیز امتحان کنید. با بازدید از این آدرس و یا فرمان زیر می‌توانید آخرین نسخه s3cmd را دریافت نمایید.
php
wget https://sourceforge.net/projects/s3tools/files/s3cmd/2.0.1/s3cmd-2.0.1.tar.gztar xzf s3cmd-2.0.1.tar.gz
حالا می‌توانید با کمک فرمان زیر و از طریق فایل‌های منبع، آن را نصب کنید.
php
cd s3cmd-2.0.1sudo python setup.py install

تنظیم محیط s3cmd

برای تنظیم s3cmd می‌توانیم درخواست Access Key و Secret Key از حساب کاربری S3 Amazon داشته باشیم. این کلیدهای امنیتی را می‌توانید از صفحه aws securityCredentials دریافت کنید. در اینجا از شما خواسته می‌شود که به حساب کاربری آمازون خود وارد شوید. پس از دریافت این کلیدها، تنظیمات ابزار s3cmd را با استفاده از فرمان زیر انجام دهید.
php
# s3cmd --configure
مقادیر جدید وارد کنید و یا با زدن دکمه Enter، مقادیر پیش‌فرض را تأیید نمایید. همچنین به راهنمای کاربری برای توضیحات بیشتر در مورد گزینه‌ها توجه کنید.
php
Enter new values or accept defaults in brackets with Enter.Refer to user manual for detailed description of all options.Access key and Secret key are your identifiers for Amazon S3Access Key: xxxxxxxxxxxxxxxxxxxxxxSecret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEncryption password is used to protect your files from readingby unauthorized persons while in transfer to S3Encryption password: xxxxxxxxxxPath to GPG program [/usr/bin/gpg]:When using secure HTTPS protocol all communication with Amazon S3servers is protected from 3<sup>rd</sup> party eavesdropping. This method isslower than plain HTTP and can’t be used if you’re behind a proxyUse HTTPS protocol [No]: YesNew settings:Access Key: xxxxxxxxxxxxxxxxxxxxxxSecret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEncryption password: xxxxxxxxxxPath to GPG program: /usr/bin/gpgUse HTTPS protocol: TrueHTTP Proxy server name:HTTP Proxy server port: 0Test access with supplied credentials? [Y/n] YPlease wait, attempting to list all buckets…Success. Your access key and secret key worked fine JNow verifying that encryption works…Success. Encryption and decryption worked fine JSave settings? [y/N] yConfiguration saved to ‘/root/.s3cfg’

موارد استفاده ابزار خط فرمان s3cmd

وقتی تنظیمات به اتمام رسید، می‌توانید استفاده از s3cmd را شروع کنید. این ابزار برای منظورهای زیر می‌تواند مورد استفاده قرار گیرد.

۱) تهیه لیست از تمام باکت‌های S3

از فرمان زیر برای تهیه لیست از تمام باکت‌های S3 در حساب کاربری aws خودتان استفاده کنید.
php
# s3cmd ls

۲) ایجاد باکت جدید

برای ساخت یک باکت جدید در Amazon s3 از فرمان زیر کمک بگیرید. این فرمان موجب ساخت یک باکت جدید با نام ariaservice در حساب کاربری S3 خواهد شد.
php
# s3cmd mb s3://ariaserviceBucket 's3://ariaservice/' created

۳) ارسال  فایل در باکت

فرمان موجب ارسال فایلی به نام file.txt به باکت s3 می‌شود.
php
# 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
# s3cmd put -r backup s3://ariaservice/backup/file1.txt -> s3://ariaservice/backup/file1.txt  [1 of 2]9984 of 9984   100% in    0s    18.78 kB/s  donebackup/file2.txt -> s3://ariaservice/backup/file2.txt  [2 of 2]0 of 0     0% in    0s     0.00 B/s  done
حتماً دقت کنید که علامت اسلش یا / بعد از عنوان دایرکتوری (مثلاً backup/) نداشته باشید. در غیر این صورت، فقط محتوای این دایرکتوری ارسال خواهد شد.
php
# s3cmd put -r backup/ s3://ariaservice/backup/file1.txt -> s3://ariaservice/file1.txt  [1 of 2]9984 of 9984   100% in    0s    21.78 kB/s  donebackup/file2.txt -> s3://ariaservice/file2.txt  [2 of 2]0 of 0     0% in    0s     0.00 B/s  done

۵) لیست داده‌های باکت s3

گزینه ls در ابزار s3cmd موجب تهیه لیست از تمام آبجکت‌های باکت s3 می‌شود.
php
# s3cmd ls s3://ariaservice/DIR   s3://ariaservice/backup/2013-09-03 10:58    190216   s3://ariaservice/file.txt

۶) دریافت فایل از باکت

گاهی اوقات لازم است که از باکت s3 فایل دانلود کنید. در این صورت از فرمان زیر استفاده خواهیم کرد.
php
# 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
Removing file from s3 bucket# s3cmd del s3://ariaservice/file.txtFile s3://ariaservice/file.txt deletedRemoving directory from s3 bucket# s3cmd del s3://ariaservice/backupFile s3://ariaservice/backup deleted

۸) حذف باکت S3

اگر به باکت S3 احتیاجی نداشته باشیم، می‌توانیم به‌راحتی با استفاده از فرمان زیر آن را حذف کنیم. البته حتماً قبل از پاک‌کردن باکت، از خالی‌بودن آن مطمئن شوید.
php
# s3cmd rb s3://ariaserviceERROR: S3 error: 409 (BucketNotEmpty): The bucket you tried to delete is not empty
پیغام خطای بالا به خاطر خالی نبودن باکت s3 است. برای حذف باکت، ابتدا تمام آبجکت‌های داخل آن را پاک کنید و سپس دوباره فرمان را به کار بگیرید.
php
# s3cmd rb s3://ariaserviceBucket 's3://ariaservice/' removed
امیدواریم که این مطلب نیز مورد توجه شما قرار گرفته باشد. برای اطلاعات بیشتر در این زمینه همچنان وبلاگ آریانت را دنبال کنید.