কম্পিউটার টিউটোরিয়াল

লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

লিনাক্সে আপনার ডেটা ব্যাকআপ করার বেশ কিছু অপশন আছে। আপনি কিছু ফ্রি সফটওয়্যার প্রোগ্রাম ব্যবহার করতে পারেন, যেমন fwbackups এবং Sbackup। তবে, কোনো অতিরিক্ত সফটওয়্যার ইনস্টল না করে একটি ডিরেক্টরি ব্যাকআপ করার একটি সহজ পদ্ধতিও আছে।

আমরা ভেরিয়েবল, tar কমান্ড এবং date কমান্ড ব্যবহার করে একটি শেল স্ক্রিপ্ট তৈরি করব, যা একটি ডিরেক্টরির (সাবডিরেক্টরিসহ) তারিখসহ ব্যাকআপ ফাইল তৈরি করবে।

    একটি শেল স্ক্রিপ্ট মূলত একটি ফাইল যেটিতে কমান্ডের একটি লিস্ট থাকে যা ক্রমানুসারে রান হয়। আপনার যদি কমান্ডের একটি সিরিজ থাকে যা আপনি নিয়মিত ক্রমানুসারে চালান, তবে সেসব কমান্ড ধারণকারী একটি শেল স্ক্রিপ্ট ফাইল তৈরি করা সহায়ক। তারপর, আপনাকে শুধু স্ক্রিপ্ট ফাইলটি রান করতে হবে কমান্ডগুলো চালানোর জন্য।

    শেল স্ক্রিপ্ট ফাইল তৈরি করুন

    এই উদাহরণে, আমরা একটি ইউজার গাইডের ফাইলগুলো ধারণকারী একটি ডিরেক্টরি ব্যাকআপ করার জন্য একটি শেল স্ক্রিপ্ট তৈরি করব। আমরা Ubuntu-এ Gnome এনভায়রনমেন্ট ব্যবহার করছি।

    প্রথমে, আপনার হোম ডিরেক্টরি অ্যাক্সেস করুন, Places মেনু থেকে Home Folder সিলেক্ট করে। File Browser আপনার হোম ডিরেক্টরিতে খুলবে।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    আমরা একটি নতুন খালি ফাইল তৈরি করব যেখানে আমরা ব্যাকআপ করার কমান্ডগুলো লিখব। ডান প্যানেলে রাইট-ক্লিক করুন এবং পপ-আপ মেনু থেকে Create Document | Empty File সিলেক্ট করুন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    লিস্টে একটি ফাইল যোগ হবে এবং এটি রিনেম করার জন্য প্রস্তুত। ফাইলের জন্য একটি নাম টাইপ করুন, ফাইলে .sh এক্সটেনশন দিন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    এই উদাহরণে, আমরা আমাদের ফাইলকে user_guide_backups.sh নাম দিয়েছি।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    এখন আমাদের ফাইলে কমান্ডগুলো যোগ করতে হবে। ফাইলের নামের ওপর রাইট-ক্লিক করুন এবং পপ-আপ মেনু থেকে Open with gedit সিলেক্ট করুন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    ফাইল gedit-এ খুলবে। নিচের লাইনগুলো ফাইলে লিখুন এবং Save ক্লিক করুন। প্রতিটি লাইনের উদ্দেশ্য নিচে দেওয়া আছে।

    নোট: আপনি নিচের টেক্সট কপি করে gedit-এ পেস্ট করুন। <username>-কে আপনার ইউজারনেম দিয়ে পরিবর্তন করতে ভুলবেন না।

    #!/bin/bash SRCDIR="/home/<username>/Documents/my_work/" DESTDIR="/home/<username>/Backups/" FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz tar – create – gzip – file=$DESTDIR$FILENAME $SRCDIR

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    লাইন বাই লাইন বর্ণনা

    নিচের টেবিলে শেল স্ক্রিপ্ট ফাইলে প্রতিটি লাইন কী তা বর্ণনা করা হয়েছে।

    লাইন # বর্ণনা
    1 এই লাইনটি একটি bash শেল স্ক্রিপ্টের প্রথম লাইন হতে হবে, যা ডিফল্ট স্ক্রিপ্ট টাইপ।
    2 এই লাইন SRCDIR নামে একটি ভেরিয়েবল সেট আপ করে এবং এর মান সেট করে সেই ডিরেক্টরির হিসেবে যেটি ব্যাকআপ নেওয়া হবে।
    নোট: নিশ্চিত করুন <username>-কে আপনার username- দিয়ে রিপ্লেস করেছেন।
    3 এই লাইন DESTDIR নামে একটি ভেরিয়েবল সেট আপ করে এবং এর মান সেট করে সেই ডিরেক্টরির হিসেবে যেটিতে ব্যাকআপ ফাইলটি লেখা হবে।
    নোট: নিশ্চিত করুন <username>-কে আপনার username- দিয়ে রিপ্লেস করেছেন।
    4 এই লাইন FILENAME নামে একটি ভেরিয়েবল সেট আপ করে এবং এর মান সেট করে টেক্সট এবং date কমান্ড ধারণকারী ভেরিয়েবল ব্যবহার করে বর্তমান তারিখ এবং সময় ফাইলের নামে যোগ করে। উদাহরণস্বরূপ, ফাইলের নাম হতে পারে ug-20100212-13:03:45.tgz।
    নোট: ভেরিয়েবল ব্যবহার করার সময়, সবসময় ডলার সাইন ($) দিয়ে শুরু করুন। আপনি যদি একটি কমান্ড ভেরিয়েবলের অংশ হিসেবে ব্যবহার করেন, তবে কমান্ড এবং কমান্ডের অপশনগুলো প্যারেনথেসিসে বন্ধ করুন।
    5 এই লাইন tar কমান্ড নিচের ফাংশন এবং অপশনসহ।

    –create এই ফাংশন একটি নতুন আর্কাইভ তৈরি করে (অথবা যদি নির্দিষ্ট ফাইলের নাম ইতিমধ্যে থাকলে পুরনোটি ট্রানকেট করে) এবং নামযুক্ত ফাইল বা ডিরেক্টরিটি সেখানে লেখে।
    –gzip এই অপশন tar-কে বলে আর্কাইভের ফাইলগুলো gzip ইউটিলিটি ব্যবহার করে কমপ্রেস করতে।
    –file এই অপশন tar-কে ফাইলের নাম দেয়। এই কেসে, আমরা DESTDIR, FILENAME, এবং SRCDIR ভেরিয়েবল ব্যবহার করে ফাইলের নাম অ্যাসেম্বল করেছি।

    শেল স্ক্রিপ্ট ফাইলের পারমিশন এডিট করুন

    আপনার স্ক্রিপ্ট চালানোর আগে, আপনাকে নিশ্চিত করতে হবে যে ফাইলটির সঠিক পারমিশন আছে। এটি করতে, আবার আপনার Home Folder খুলুন যেমন উপরে বলা হয়েছে এবং শেল স্ক্রিপ্ট ফাইলে রাইট-ক্লিক করুন। পপ-আপ মেনু থেকে Properties সিলেক্ট করুন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    Properties ডায়লগ বক্স দেখাবে। নিশ্চিত করুন Execute চেক বক্স সিলেক্ট করা আছে।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    Close ক্লিক করুন।

    শেল স্ক্রিপ্ট চালান

    শেল স্ক্রিপ্ট চালাতে, Applications মেনু থেকে Accessories | Terminal সিলেক্ট করে একটি টার্মিনাল উইন্ডো খুলুন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    Terminal উইন্ডো খুললে, আপনি ডিফল্টভাবে আপনার Home Folder-এ থাকবেন। কমান্ড লাইনে pwd টাইপ করে Enter চাপলে এটি কনফার্ম হবে। প্রম্পটে ./user_guide_backups.sh টাইপ করুন এবং Enter চাপুন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    আপনার হোম ফোল্ডারের Backups ফোল্ডারে একটি .tgz ফাইল থাকা উচিত। আপনি যদি ফাইলের নামের ওপর রাইট-ক্লিক করেন, তবে আপনি আর্কাইভটি উপলব্ধ আর্কাইভিং প্রোগ্রামগুলোর একটিতে খোলার বা Extract Here কমান্ড ব্যবহার করে সরাসরি Backups ফোল্ডারে এক্সট্র্যাক্ট করার বেশ কিছু অপশন দেখবেন।

    লিনাক্সে শেল স্ক্রিপ্ট ব্যবহার করে একটি ডিরেক্টরি ব্যাকআপ করুন

    আরও তথ্য

    নিচের লিংকগুলো শেল স্ক্রিপ্ট, tar এবং date কমান্ড, এবং অন্যান্য লিনাক্স কমান্ড সম্পর্কে আরও তথ্য দেয়।

    স্ক্রিপ্টিং

    bash শেল ব্যবহার করে স্ক্রিপ্ট লেখার একটি কুইক গাইড

    Bash Shell Scripting — 10 Seconds Guide | All about Linux

    Bash Reference Manual

    লিনাক্স কমান্ডস

    tar MAN Page

    date MAN Page

    bash commands — Linux MAN Pages

    এই পেজগুলো এক্সপ্লোর করলে আপনি আপনার নিজস্ব উপকারী bash শেল স্ক্রিপ্ট তৈরি করতে পারবেন।

    1. লিনাক্সে Find কমান্ড ব্যবহার করে ফাইল খুঁজে বের করার পদ্ধতি

    2. লিনাক্সে ন্যানো (Nano) টেক্সট এডিটর ব্যবহারের বिगিনার গাইড

    3. লিনাক্স টার্মিনাল থেকে FFMPEG ব্যবহার করে ভিডিও ফাইল সাইজ কমাতে

    4. লিনাক্সে সিম্পল শেল স্ক্রিপ্ট মাস্টার করুন: ধাপে ধাপে গাইড