ইন্টারনেট সংযোগের উপর নির্ভর করে কীভাবে স্ক্রিপ্ট চালানো যায়


48

আমি প্রায়শই sshfs ব্যবহার করে একটি রিমোট ড্রাইভ মাউন্ট করি। আমি এই মাউন্টটি স্বয়ংক্রিয়ভাবে পেতে চাই। যাইহোক, আমি যদি এটি আমার .Bashrc বা স্টার্টআপ স্ক্রিপ্টগুলিতে মাউন্ট করি তবে মাউন্টটি প্রায়শই ব্যর্থ হয় কারণ আমার ওয়্যারলেস ইন্টারনেট সংযোগ এখনও তৈরি হয়নি।

প্রতিবার সংযোগ তৈরি হওয়ার পরে বাশ স্ক্রিপ্ট কার্যকর করার কোনও সহজ উপায় বা কোনও এসএসএফএস ড্রাইভকে স্বয়ংক্রিয়ভাবে মাউন্ট করার জন্য কি কেউ জানেন?

উত্তর:


56

এতে আপনার স্ক্রিপ্ট যুক্ত করুন /etc/network/if-up.d/। '.Sh' এক্সটেনশন ছাড়াই আপনার স্ক্রিপ্টটির নাম দিন।

এছাড়াও স্ক্রিপ্ট যোগ করার পরে chmod +x /etc/network/if-up.d/yourscriptnameপ্রয়োজনীয় অনুমতি দিতে চালান ।

নিশ্চিত হয়ে নিন যে নেটওয়ার্ক ইন্টারফেসটি (যেমন wlan0 বা eth0) ফাইলটি উল্লিখিত হওয়ার পরে আপনার স্ক্রিপ্টটি ট্রিগার করা উচিত /etc/network/interfaces


12
/etc/network/*.d/আপনার মধ্যে স্ক্রিপ্টগুলির সাহায্যে ভেরিয়েবলটি ব্যবহার করে $IFACEকোন ইন্টারফেসটি সংযোগ পাচ্ছে তা জানতে ব্যবহার করতে পারেন সুতরাং উদাহরণস্বরূপ যদি এটি তারযুক্ত সংযোগ হয় তবে আপনি পদ্ধতিটি এড়িয়ে যেতে পারেন।
কার্লোস ক্যাম্পাদ্রেস

আপনি কোন নির্দিষ্ট নেটওয়ার্কের জন্য এটি করতে চান তা নির্দিষ্ট করার কোনও উপায় আছে? যখন এটি আমার হোম নেটওয়ার্ক আমি স্ক্রিপ্টটি করতে চাই তবে যখন আমি কোনও নেটওয়ার্ক আউট করব এবং আমার সম্ভবত নাও চাই ...
জোশুয়া রবিসন

3
এটি আসলে মোটেও কাজ করে বলে মনে হচ্ছে না। আমি জানি আমার স্ক্রিপ্টগুলি কাজ করে কারণ আমি টার্মিনালে। তাদের কোনওভাবে উল্লেখ করার জন্য আমাকে কিছু করতে হবে? if-up.d এ কোনও স্ক্রিপ্ট ফেলে রাখা কি মনে হচ্ছে একটি পদক্ষেপের অভাব??!?!
জোশুয়া রবিসন

1
দয়া করে তারা সঠিক অনুমতি পেয়েছেন কিনা তা পরীক্ষা করে দেখুন।
ডেডুনুম্যাক্স

2
interfacesএটি যখন নেই তখন দয়া করে ঠিক কী প্রবেশ করা উচিত তা যুক্ত করুন । এটি auto wlan0এবং iface wlan0 inet dhcpনা অন্য কোথাও?
কুকি

25

সম্পাদকের দ্রষ্টব্য: কটল ফিশ ২০১২ সাল থেকে আপডেট করা হয়নি এবং কোনও বর্তমান উবুন্টু সংগ্রহস্থলে নেই

উবুন্টু 12.04

  • কাটল ফিশ ইনস্টল করুন : একটি সাধারণ সরঞ্জাম, যা নির্দিষ্ট ইভেন্টগুলি ট্রিগার করা হলে ক্রিয়া সম্পাদন করে আপনার কম্পিউটারে প্রতিক্রিয়া উপলব্ধি করে।
  • ক্যাটলফিশ খুলুন এবং ক্লিক করুন New

    ধাপ 1

    • এটিকে একটি নাম দিন এবং উদ্দীপনা বিকল্পটি চালু করে সক্রিয় করুন
    • দেখার জন্য ক্লিক করুন উদ্দীপক , বিভাগ নির্বাচন করুন নেটওয়ার্ক এবং টাইপ বেতার থেকে কানেক্ট । ঠিক আছে ক্লিক করুন।

    ধাপ ২

    • আপনি ওয়্যারলেস নেটওয়ার্কের এসএসআইডি নির্বাচন করতে পারেন এবং এটি প্রারম্ভকালে এটি যাচাই বা না করার বিকল্প রয়েছে।

    ধাপ 3

    • এখন আপনাকে একটি প্রতিক্রিয়া নির্দিষ্ট করতে হবে। প্রতিক্রিয়া ট্যাবে যান , এবং অ্যাড ক্লিক করুন। বিভাগ থেকে অ্যাপ্লিকেশন নির্বাচন করুন এবং প্রকার থেকে অ্যাপ্লিকেশন শুরু করুন (উন্নত মোডে)

    পদক্ষেপ 4

    • এখন আপনি যে স্ক্রিপ্টটি এক্সিকিউটেবল বিকল্পে চালাতে চান তা উল্লেখ করুন। এমনকি আপনি স্ক্রিপ্টে প্যারামিটারগুলিও পাস করতে পারেন।

    ধাপ -5

    • এবং এটাই! আপনি যে স্টার্টআপ অ্যাপ্লিকেশনগুলিতে কটলফিশ যুক্ত করেছেন তা নিশ্চিত করুন। সম্পাদনা> পছন্দসমূহ এ যান এবং অটোস্টার্ট বিকল্পটি সক্ষম করুন।

    ধাপ -6


6
কাটল ফিশ সম্পূর্ণরূপে ভেঙে গেছে এবং কিছুক্ষণের জন্য আপডেট দেখেনি। আমি আশা করি এটি আরও বিকাশ লাভ করতে পারে কারণ আমাদের লিনাক্সের জন্য অ্যান্ড্রয়েডের টাস্কার অ্যাপের মতো কিছু দরকার। কেউ / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেস এবং যদি আপ ফোল্ডার এবং স্ক্রিপ্টগুলির সাথে ঝামেলা করতে চায় না। আমাকে ক্লিক করুন বা টগল করতে এবং চালু করতে পারেন কেবল আমাকে।
জোশুয়া রবিসন

2

আমি ওপি প্রশ্নের এই অংশটির উত্তর দেব: "আমি এই মাউন্টটি স্বয়ংক্রিয়ভাবে পেতে চাই"

নেটওয়ার্ক শেয়ারগুলি অটোমোটিংয়ের জন্য আমার প্রিয় সরঞ্জামটি অটোফগুলি: https://help.ubuntu.com/commune/Autofs

আমার সমস্ত ল্যাপটপ এবং ওয়ার্কস্টেশনের জন্য - আমার এনএএস মাউন্ট করার জন্য অটোএফ্স আমার পছন্দসই সরঞ্জাম।

" অটোফস হ'ল প্রয়োজনীয় ভিত্তিতে ডিরেক্টরিগুলি স্বয়ংক্রিয়ভাবে মাউন্ট করার জন্য একটি প্রোগ্রাম Auto সামগ্রিক কর্মক্ষমতা fstab এর মাধ্যমে স্থির মাউন্টগুলির সাথে তুলনা করে। "


ওপি ইতিমধ্যে অন্য উত্তরটি স্বীকার করে নেওয়ার কারণে আপনার উত্তরটি কিছুটা দেরি হতে পারে। আপনার সাহায্য অবশ্যই প্রশংসা করা হয়, তবে আপনি উত্তর না দেওয়া প্রশ্নের
Wayne_Yux

দুঃখিত ওয়েন, আরবেল এখানে শেষ হাসি পেয়েছেন - সর্বোত্তম উত্তর (ক্যাটলফিশ ব্যবহার সম্পর্কে) আর প্রাসঙ্গিক নয় কারণ সেই প্যাকেজটি পুরানো - তবে অটোফগুলি এখনও বিদ্যমান, এবং আমি এই পোস্টের জন্য না থাকলে তা দেখিনি। ধন্যবাদ, আরবেল!
KlaymenDK

1

সবচেয়ে সহজ, সহজ এবং সহজ উপায় হ'ল আপনি যে ইন্টারফেসটিতে কাজ করতে চান তার কোনও আপ কমান্ড যুক্ত করা।

ইন্টারফেসগুলি "/ etc / নেটওয়ার্ক /" ডিরেক্টরিতে ফাইল নামের "ইন্টারফেস" এর অধীনে পাওয়া যাবে

iface elan0 inet manual
    up filename.sh

এটি elan0-তে আপ কমান্ড যুক্ত করবে। আপনি যে কোনও ইন্টারফেসে কাজ করতে চান তা এটিকে সিলেলি দিয়ে দিন। একটি ট্যাব স্পেস যুক্ত করতে মনে রাখবেন।

নিশ্চিত করুন যে আপনি ফাইলটিকে এক্সিকিউট করার অনুমতি দিয়েছেন।

sudo chmod 755 filename.sh

1
ফ্যান্টাস্টিক! tun0দ্বারা পরিচালিত ভিপিএন ইন্টারফেসের সাথে কাজ করে network-manager। কীটি হ'ল ব্যবহার inet manual
ক্রিসওয়েবদেভ

1

আমি যতটা উদ্বিগ্ন, /etc/network/if-up.d/সমাধানটি আমার কাছ থেকে কার্যকর হয়নি যখন আমি /etc/network/interfacesনিম্নলিখিতগুলিতে যুক্ত করেছি:

auto wlp58s0
iface wlp58s0 inet dhcp
post-up /home/augustin/Config/myscript.sh

রিবুট করার পরে ওয়াইফাই শুরু হবে।

কিন্তু কিছু সংগ্রাম থেকে পরে এই লিঙ্কে , কি কাজ করতে স্ক্রিপ্ট যোগ করার জন্য ছিল /etc/NetworkManager/dispatcher.d/আকারে 90myscript.shযেখানে 90স্ক্রিপ্টের এবং নিচের ফর্ম সঙ্গে অগ্রাধিকার স্তর হল:

#!/bin/bash

IF=$1
STATUS=$2

if [ "$IF" == "wlp58s0" ]
then
    case "$2" in
        up)
        # interface is up
        ;;
        down)
        # interface will be down
        ;;
        pre-up)
        # interface will be up
        ;;
        post-down)
        # interface is down
        ;;
        *)
        ;;
    esac
fi

আমার ধারণা, সিস্টেম স্তরে নেটওয়ার্ক কনফিগারেশন কে নিয়ন্ত্রণ করে এবং মাঝে মাঝে ডিফল্ট networkআচরণ প্রেরককে পিছনে ফেলে যায় তার মধ্যেও কিছু সমস্যা রয়েছে।

এছাড়াও, যারা চান - আমার মতো - স্ক্রিপ্টের সাথে একটি প্রতীকী লিঙ্ক করার চেষ্টা করুন (ফাইলটি আরও ভাল জায়গায় সংরক্ষণ করার জন্য), দুর্ভাগ্যক্রমে এটি আমার পক্ষে কার্যকর হয়নি।

আশাকরি এটা সাহায্য করবে!


1

systemd আজকাল নেটওয়ার্কিংয়ের দায়িত্ব নিয়েছে বলে মনে হচ্ছে।

$ networkctl
WARNING: systemd-networkd is not running, output will be incomplete.

IDX LINK             TYPE               OPERATIONAL SETUP
  1 lo               loopback           n/a         unmanaged
  2 enp0s25          ether              n/a         unmanaged
  3 wlo1             wlan               n/a         unmanaged

3 links listed.

এটি ইন্টারফেসের সাথে সম্পর্কিত ইউনিট রয়েছে

$ systemctl list-units |grep wlo1
sys-devices-pci0000:00-0000:00:1c.3-0000:24:00.0-net-wlo1.device                                                        loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)
sys-subsystem-net-devices-wlo1.device                                                                                   loaded active plugged   Centrino Ultimate-N 6300 (3x3 AGN)

স্পষ্টতই আপনি এগুলি পরিষেবা ইউনিট ফাইলগুলিতে ব্যবহার করতে পারেন। সুতরাং আপনার স্ক্রিপ্টটি চালানোর জন্য কেবল একটি পরিষেবা ইউনিট তৈরি করুন এবং এটি নেটওয়ার্কে শর্তসাপেক্ষে চালিত করার জন্য এমন কিছু ব্যবহার করুন:

BindsTo=sys-subsystem-net-devices-wlo1.device
After=sys-subsystem-net-devices-wlo1.device

শুভকামনা! আমি এটি পরীক্ষা করিনি, সুতরাং "আপনার মাইলেজটি ভিন্ন হতে পারে"।

সূত্র:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.