استفاده از Rsync در اوراکل لینوکس 9 برای همگام سازی امن داده ها

من اخیراً روی یک پروژه تجزیه و تحلیل داده کار کردم که امنیت در آن اولویت اصلی بود. هدف من این بود که اطمینان حاصل کنم که داده های حساس به طور مؤثر به اشتراک گذاشته می شوند و در عین حال دسترسی مستقیم به سرور داده اولیه را محدود می کنم. این یک چالش جالب ارائه کرد: چگونه می توان به طور ایمن داده ها را با چندین کاربر به اشتراک گذاشت بدون اینکه به آنها اجازه دسترسی به سرور داده را بدهد.
فهرست مطالب
اگر میخواهید بخشهای مقاله را تنظیم کنم یا فهرست مطالب را بیشتر اصلاح کنم، به من اطلاع دهید!
سرور Rsync و Samba: یک راه حل امن
برای رفع این مشکل، من یک سرور سامبا را با یک سرویس rsync ترکیب کردم تا داده ها را بین سرور داده اصلی و سرور سامبا همگام سازی کند. سرور سامبا به کاربران این امکان را می دهد که به داده های مشترک دسترسی داشته باشند و در عین حال سرور اصلی را ایمن نگه دارند.
برای افزایش امنیت، من rsync را روی SSH راهاندازی کردم و اطمینان حاصل کردم که تمام انتقال دادهها رمزگذاری شده است. کلیدهای احراز هویت SSH برای ورود خودکار پیکربندی شدند و نیاز به وارد کردن رمز عبور در طول همگام سازی را از بین بردند. برخی ممکن است تعجب کنند: “اگر در حال حاضر از کلیدهای SSH و احراز هویت استفاده می کنید، چرا فقط از آن استفاده نکنید. scp
پاسخ در کارایی و انعطاف پذیری rsync نهفته است.
چرا از Rsync استفاده کنیم؟
Rsync ابزار قدرتمندی است که تفاوتهای بین دایرکتوریها را در دو سرور شناسایی میکند و آنها را به طور موثر همگامسازی میکند. این شامل حذف فایلهایی است که دیگر در دایرکتوری منبع وجود ندارند و آن را به انتخابی عالی برای حفظ یک نسخه بهروز تبدیل میکند. من واقعاً از اینکه راه اندازی و استفاده از آن چقدر ساده بود شگفت زده شدم.
همگام سازی داده ها با سرور سامبا
برای این پروژه، من نیاز به همگام سازی همه فایل ها از دایرکتوری سرور داده داشتم /data/stock_predictor/
به دایرکتوری در سرور Samba. دستور اصلی که من استفاده کردم اینه:
rsync -avz --delete "/data/stock_predictor/" "rsyncuser@192.168.178.77:/srv/data/"
در مورد من، یک نیاز اضافی وجود داشت: من نمیخواستم فایلهای پایگاه داده در همگامسازی گنجانده شوند. حذف دایرکتوری پایگاه داده به سادگی افزودن یک بود --exclude
پرچم:
rsync -avz --delete --exclude "/data/stock_predictor/database/" "/data/stock_predictor/" "rsyncuser@192.168.178.77:/srv/data/"
همگام سازی داده ها به سرور
کاربران همچنین می توانند فایل های XLSX را در یک پوشه مشخص در سرور سامبا آپلود کنند. این فایل ها برای پردازش باید به سرور داده همگام شوند. دستور این همگام سازی معکوس ساده بود:
rsync -avz --delete "/srv/data/xlsx/upload/" "rsyncuser@192.168.178.76:/data/stock_predictor/xlsx/upload/"
خودکارسازی همگام سازی با تایمرهای Systemd
برای خودکار کردن این فرآیندهای همگام سازی، یک اسکریپت ایجاد کردم، /usr/local/bin/rsync_data.sh
، برای هر سرور طراحی شده است. سپس از تایمرها و سرویس های systemd برای برنامه ریزی کارهای همگام سازی استفاده کردم. از آنجایی که بیشتر تولید داده در ساعات غیرفعال اتفاق میافتد، من همگامسازی را هر 15 دقیقه برنامهریزی کردم. این تضمین میکرد که هر داده بهروز شده در مدت کوتاهی پس از تولید در دسترس باشد.
چرا از Rsync به عنوان دیمون استفاده نمی کنید؟
در حالی که rsync می تواند به عنوان یک دیمون عمل کند، به طور ذاتی از رمزگذاری برای انتقال داده پشتیبانی نمی کند. برای پروژه من، رمزگذاری غیرقابل مذاکره بود. با ترکیب rsync با SSH و تایمرهای systemd، به همگامسازی ایمن، کارآمد و خودکار دادهها دست یافتم – همه فقط با چند خط پیکربندی. کد اینجا
این تنظیمات انعطافپذیری و قدرت لینوکس را برجسته میکند. با ابزارهایی مانند rsync، SSH، و systemd، می توانید یک سیستم قوی و ایمن متناسب با نیازهای خاص خود ایجاد کنید.