انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: درخواست شل اسکریپت  (دفعات بازدید: 2867 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
درخواست شل اسکریپت
« : 07 تیر 1393، 01:20 ب‌ظ »
سلام دوستان
نیاز به یه شل اسکریپت ساده دارم که هر وقت اجرا میشه ایپی و گتوی و نت ماسک رو دریافت کنه و جایگزینه ایپی موجود در فایل interface کنه
خیلی ممنونم

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #1 : 07 تیر 1393، 08:59 ب‌ظ »
 - من اوبونتو ندارم ،اگه آدرس فایل و یک نمونه از محتویاتش رو بزارید ،انجامش میدم براتون.
ubuntu16.04/unity/JavaScript

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #2 : 07 تیر 1393، 09:25 ب‌ظ »
- من اوبونتو ندارم ،اگه آدرس فایل و یک نمونه از محتویاتش رو بزارید ،انجامش میدم براتون.

خیلی ممنونم
/etc/network/interfaces

محتویاتشم اینه:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
# auto lo
# iface lo inet loopback

# The primary network interface
auto eth0:0
iface eth0:0 inet static

address 107.6.174.246
netmask 255.255.255.192
gateway 107.6.174.193

auto eth0:1
iface eth0:1 inet static

address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1




فقط یه نکته مهم اینه که eth0:1 نباید تغییر کنه
فقط eth0:0 رو باید تغییر بده

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #3 : 07 تیر 1393، 11:06 ب‌ظ »
 - شرمنده چیزی به ذهنم نمیاد الان ،فکر میکردم مثل سیستم عامل خودم هر interface فایلش جداست که با یک sed راحت حل میشه. :(
ubuntu16.04/unity/JavaScript

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #4 : 07 تیر 1393، 11:07 ب‌ظ »
- شرمنده چیزی به ذهنم نمیاد الان ،فکر میکردم مثل سیستم عامل خودم هر interface فایلش جداست که با یک sed راحت حل میشه. :(

فدورا میشد، حالا شما اگر امکانش هست sed رو بنویسید من یه فکری به حالش مکنم

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #5 : 08 تیر 1393، 01:07 ق‌ظ »
 - مبتدیانه است ولی همچین چیزی به ذهنم رسید (این کانفیگ فدوراست)  ::)
#!/bin/bash

path="/home/elyas/my_scripts/aaa"

echo "enter ip :"
read ip
echo "enter netmask :"
read netmask
echo "enter gateway :"
read gateway


echo "TYPE=Ethernet" | tee $path
echo "BOOTPROTO=dhcp"| tee -a $path
echo "DEFROUTE=yes"| tee -a $path
echo "NAME=wire"| tee -a $path
echo "UUID=632f0667-56c9-481d-8203-7782af54af2a"| tee -a $path
echo "ONBOOT=yes"| tee -a $path
echo "HWADDR=20:89:84:FB:74:1E"| tee -a $path
echo "PEERDNS=yes"| tee -a $path
echo "PEERROUTES=yes"| tee -a $path
echo "IPADDR=$ip"| tee -a $path
echo "NETMASK=$netmask"| tee -a $path
echo "GATEWAY=$gateway"| tee -a $path

 - راستی چرا با ifconfig کار نمیکنید؟
ifconfig wlp3s0 172.20.1.50 netmask 255.255.255.0
ubuntu16.04/unity/JavaScript

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #6 : 08 تیر 1393، 01:26 ق‌ظ »
- مبتدیانه است ولی همچین چیزی به ذهنم رسید (این کانفیگ فدوراست)  ::)
#!/bin/bash

path="/home/elyas/my_scripts/aaa"

echo "enter ip :"
read ip
echo "enter netmask :"
read netmask
echo "enter gateway :"
read gateway


echo "TYPE=Ethernet" | tee $path
echo "BOOTPROTO=dhcp"| tee -a $path
echo "DEFROUTE=yes"| tee -a $path
echo "NAME=wire"| tee -a $path
echo "UUID=632f0667-56c9-481d-8203-7782af54af2a"| tee -a $path
echo "ONBOOT=yes"| tee -a $path
echo "HWADDR=20:89:84:FB:74:1E"| tee -a $path
echo "PEERDNS=yes"| tee -a $path
echo "PEERROUTES=yes"| tee -a $path
echo "IPADDR=$ip"| tee -a $path
echo "NETMASK=$netmask"| tee -a $path
echo "GATEWAY=$gateway"| tee -a $path

 - راستی چرا با ifconfig کار نمیکنید؟
ifconfig wlp3s0 172.20.1.50 netmask 255.255.255.0

به نظرتون اگه فایل interfaces رو پاک کنه و اخر کار اون سه تادخط رو اکو بدم چطوره؟
ممنونم بابت شل

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #7 : 08 تیر 1393، 11:13 ق‌ظ »
 - اینجور که از فایل شما دیده میشه شما با interface های alias هم کار میکنید، که ممکنه لیستتون کم یا زیاد بشه ،ولی اگه یک لیست ثابت دارین خوبه.

نقل‌قول
به نظرتون اگه فایل interfaces رو پاک کنه و اخر کار اون سه تادخط رو اکو بدم چطوره؟

 - اینم آدرسی که تحت عنوان path میگیره رو پاک میکنه ( چون اولین دستور tee ، نداره append-- رو ) ،و محتویاتی که میخواید رو میتونید اکو کنید ،اگه همیشه فایل به یک شکله.
ubuntu16.04/unity/JavaScript

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #8 : 08 تیر 1393، 03:30 ب‌ظ »
- اینجور که از فایل شما دیده میشه شما با interface های alias هم کار میکنید، که ممکنه لیستتون کم یا زیاد بشه ،ولی اگه یک لیست ثابت دارین خوبه.

نقل‌قول
به نظرتون اگه فایل interfaces رو پاک کنه و اخر کار اون سه تادخط رو اکو بدم چطوره؟

 - اینم آدرسی که تحت عنوان path میگیره رو پاک میکنه ( چون اولین دستور tee ، نداره append-- رو ) ،و محتویاتی که میخواید رو میتونید اکو کنید ،اگه همیشه فایل به یک شکله.

eth0:1 ثابت هستش

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #9 : 10 تیر 1393، 08:08 ق‌ظ »
با تشکر فراوان، اسکریپتی که دادید جواب داد
فقط یه موردی چطور باید کاری کنم که خروجی رو نشون نده؟
و اینکه با هر بار لاگین کردن یوزر روت، اسکریپت خودکار اجرا بشه و در صورت کنسل کردن (ctrl + c) یوزر روت هم لاگ اوت بشه؟

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : درخواست شل اسکریپت
« پاسخ #10 : 10 تیر 1393، 12:54 ب‌ظ »
میشه بگی این کدها رو برای چه کاری می‌خوای؟

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #11 : 10 تیر 1393، 01:06 ب‌ظ »
میشه بگی این کدها رو برای چه کاری می‌خوای؟

برای یه ماشین مجازی که ایپی رو غیر از interfaces داخل چند تا فایل php هم باید ست کنه و یه سری چیز های دیگه مثل پسورد و ...
در اصل یه پنلی هست برای esxi فعلا آماده نشده هنوز

فقط نمیدونم چرا این کد که نوشتم کار نمیده
echo "Enter Password For Root:"
read pass

echo -e "$pass\n$pass\n"| passwd root

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #12 : 10 تیر 1393، 10:02 ب‌ظ »
 - برای این که کد خروجی نداشته باشه از این استفاده کنید :
#!/bin/bash

path="/home/elyas/my_scripts/aaa"

echo "enter ip :"
read ip
echo "enter netmask :"
read netmask
echo "enter gateway :"
read gateway


echo "TYPE=Ethernet" > $path
echo "BOOTPROTO=dhcp">> $path
echo "DEFROUTE=yes">> $path
echo "NAME=wire">> $path
echo "UUID=632f0667-56c9-481d-8203-7782af54af2a">> $path
echo "ONBOOT=yes">> $path
echo "HWADDR=20:89:84:FB:74:1E">> $path
echo "PEERDNS=yes">> $path
echo "PEERROUTES=yes">> $path
echo "IPADDR=$ip">> $path
echo "NETMASK=$netmask">> $path
echo "GATEWAY=$gateway">> $path

 - برای این که این اسکریپت با لاگین روت اجرا بشه اون رو در یک فایل قابل اجرا در یکی از فولدر های داخل متغیر PATH کپی کنید یا آدرس پوشه خودتون رو به PATH اضافه کنید. و در نهایت در فایل .bashrc در آدرس /root نام فایل حاوی اسکریپتتون رو به آخر فایل اضافه کنید تا با هر بار ورود با یوزر root اسن اسکریپت اجرا بشه.

 - برای خروجش متاسفانه اطلاعات کافی ندارم.

نقل‌قول
echo -e "$pass\n$pass\n"| passwd root

 - آیا از نظر منطق سیستم عامل ممکنه که یک پسوورد با کارکتر n\ وجود داشته باشه؟فکر نمیکنم درست باشه ولی اطلاعات کافی ندارم که قطعی چیزی بگم.
« آخرین ویرایش: 10 تیر 1393، 10:08 ب‌ظ توسط elyas74 »
ubuntu16.04/unity/JavaScript

آفلاین PunkGeek

  • High Sr. Member
  • *
  • ارسال: 573
پاسخ : درخواست شل اسکریپت
« پاسخ #13 : 11 تیر 1393، 06:40 ق‌ظ »
- برای این که کد خروجی نداشته باشه از این استفاده کنید :
#!/bin/bash

path="/home/elyas/my_scripts/aaa"

echo "enter ip :"
read ip
echo "enter netmask :"
read netmask
echo "enter gateway :"
read gateway


echo "TYPE=Ethernet" > $path
echo "BOOTPROTO=dhcp">> $path
echo "DEFROUTE=yes">> $path
echo "NAME=wire">> $path
echo "UUID=632f0667-56c9-481d-8203-7782af54af2a">> $path
echo "ONBOOT=yes">> $path
echo "HWADDR=20:89:84:FB:74:1E">> $path
echo "PEERDNS=yes">> $path
echo "PEERROUTES=yes">> $path
echo "IPADDR=$ip">> $path
echo "NETMASK=$netmask">> $path
echo "GATEWAY=$gateway">> $path

 - برای این که این اسکریپت با لاگین روت اجرا بشه اون رو در یک فایل قابل اجرا در یکی از فولدر های داخل متغیر PATH کپی کنید یا آدرس پوشه خودتون رو به PATH اضافه کنید. و در نهایت در فایل .bashrc در آدرس /root نام فایل حاوی اسکریپتتون رو به آخر فایل اضافه کنید تا با هر بار ورود با یوزر root اسن اسکریپت اجرا بشه.

 - برای خروجش متاسفانه اطلاعات کافی ندارم.

نقل‌قول
echo -e "$pass\n$pass\n"| passwd root

 - آیا از نظر منطق سیستم عامل ممکنه که یک پسوورد با کارکتر n\ وجود داشته باشه؟فکر نمیکنم درست باشه ولی اطلاعات کافی ندارم که قطعی چیزی بگم.

دستت درد نکنه، چرا اتفاقا توی اوبونتو /n جواب میده اما نمیدونم چرا میزارم داخل شل اسکریپت اجرا نمیشه اما در حالت عادی که بنویسم pass=123 بعد اون دستور رو که وارد میکنم پسورد تغییر پیدا میکنه

دوستان کسی در رابطه با لاگ اوت شدن در صورت ctrl +c اطلاعی نداره؟
راستی صفحه welcome لاگین پیج کامند لاین کجا هستش؟ پیداش نمیکنم توی اوبونتو

آفلاین elyas74

  • Sr. Member
  • *
  • ارسال: 274
  • جنسیت : پسر
پاسخ : درخواست شل اسکریپت
« پاسخ #14 : 11 تیر 1393، 11:24 ق‌ظ »
 - یعنی توی دستور passwd وسطش میشه اینتر زد!؟


 - ویرایش :
 - تازه متوجه منظور شما شدم  ;)
 - اول کدی که نوشتید این خط رو بزارین و دوباره بررسی کنید که انجام میده یا نه.
#!/bin/bash
 - برای اون قضیه خروج که گفتید ، این کد در یک لحظه اجرا میشه و تموم میشه ،و دستی ازش خارج شدن خیلی معنی نمیده یا شایدم من متوجه حرفتون نشدم.
 - و در کل کدی که در bashrc میزارین توی ترمینال خواصی اجرا نمیشه که بخوایم با ctrl + c ببندیمش.
« آخرین ویرایش: 11 تیر 1393، 12:16 ب‌ظ توسط elyas74 »
ubuntu16.04/unity/JavaScript