لینوکس و شبکه

لینوکس و شبکه
طبقه بندی موضوعی
آخرین مطالب
  • ۹۹/۱۱/۱۳
    java

۵ مطلب در دی ۱۳۹۸ ثبت شده است

۲۰
دی

نکات:

  • محیط استیج یعنی وضعیت آماده کامیت کردن

  • هد یکی از کامیت‌ها یا تغییرات پایداری است که در یک شاخه وجود دارد. معمولا آخرین کامییتی است که کرده ایم
  • نمایش تغییرات بر اساس برنامه diff -u انجام می‌گیرد.
  • اول همه فایل‌های untracked هستند یعنی گیت مواظب آنها نیست و بعد آن را add می‌کنیم و در اینصورت گیت آنها را میفهمد و مواظبت می‌کند یعنی میروند در محیط stage و بعدا آن را کامیت می‌کنیم و با این کار به محیط پایدار خواهند رسید
  • وقتی از یک سایتی یک پروژه راکلون می‌کنیم اسم کامیت پایدار (معمولا HEAD) آن پروژه را می‌گذاریم origin و همچنان اسم آخرین نسخه پایدار سیستم خودم هم master خواهد بود

دستورات:

ایجاد پروژه و اقدامات اولیه

  • ساختن یک پروژه گیت خالی که یک فولدر مخفی ایجاد می‌کند
$ git init

 

  • کلون کردن یک پروژه در سیستم خود
$ git clone <URL.git>

 

  • از پروژه فعلی یک ریپوزیتوری در سرور ایجاد کن و اسم آن را بگذار اوریجین و آدرس آن را هم باید ادمین سرور گیت به ما بدهد
$ git remote add origin URL

 

نمایش وضعیت و لاگ

  • نمایش وضعیت فایل‌های موجود در پوشه ای که گیت آن پوشه را در اختیار گرفته است:
$ git status

 

  • مشاهده کارهایی که کردید
$ git log --stat --summary

 

  • مشاهده کارهایی که کردید با تفاوت دیف‌ها:
$ git log -p

 

  • نمایش تغییرات کنونی با تغییرات هِد
$ git diff HEAD

 

  •  فایل‌های محیط استیج چه تغییراتی داشته اند.-تفاوت هد و استیج را نشان می‌دهد
$ git diff --staged
$ git diff --color

 

  • نشان دادن تغییرات یک کامیت
$ git show <Hash Of Commit>

 

  •  نمایش جزییات یک تگ که بعنوان ورژن شناخته می‌شود:
$ git show <tag name>

 

  • وضعیت را در سرور گیت نشان میدهد(باید بررسی شود)
$ git remote

 

 

اقدامات در stage و unstage

  • یک فایل را از استیج بیرون بیاور
$ git reset file

 

  • بازگشت به آخرین تغییرات در آن فایل-با این کار فایل اصلی که در هد است جایگزین فایلی می‌شود که در آن تغییرات اشتباه داده بودید
$ git checkout -- <FILE>

 

  • حذف فایل stage شده موجود و تبدیل به unstage
$ git rm --cached <FileNames>

 

  • حذف فولدر  stage شده موجود و تبدیل به unstage
$ git rm --cached -r <FOLDER>

 

  • پاک کردن یک فایل از گیت و فایل‌سیستم
$ git rm <file>

 

 

 

کامیت و تگ

  • افزودن یک تغییر در استیج :
$ git add <File>

 

  • افزودن یک تغییر در استیج:
$ git add -A

 

  • انتقال تغییرات از استیج به کامیت:
$ git commit -m "message"

 

  • بازگشت به آخرین کامیت(اگر استیج نشده باشد یعنی دستور اَد زده نشده باشد)
$ git checkout -- filename

 

  • بازگشت به آخرین کامیت درصورتی که دستور اَد زده شده باشد
$ git reset HEAD filename

 

  • نکته: tag می‌تواند به ما بگوید که کدام کامیت است که قابلیت ارائه به مشتری را دارد. یعنی مدیر پروژه در ذهن خودش حفظ نکند که کدام ورژن شماره یک است و کدام شماره نسخه دوم از برنامه است. معمولا شرکت‌ها برای اینکه یک release از محصول بدهند در کامیت مطلوب یک تگ میزنند که تحت عنوان ورژن شماره خاص از محصول شناخته بشود.
  • نکته: تگ بر روی کامیت زده می‌شود
  • نمایش تگ‌ها
$ git tag

 

  • زدن تک به آخرین کامیت  :
$ git tag -a v2.0.1 -m " توضیحات در باره این تگ"

 

 

  • به یک کامیت قدیمی یک تگ اختصاص دادیم:
$ git tag -a v1.3.9 <Hash Of custom commit> -m "توضیحات درباره تک"

 

  • نمایش تمام تگ‌هایی که در اول آن کاراکتر "وی" قرار دارد:
$ git tag -l "v*"

 

  • نکته: اگر تغییر از نوع ایجاد تگ باشد، گیت آن را نمی‌فهمد. یعنی دستور git status ایجاد تگ را گزارش نمی‌دهد.(در نتیجه در دستور پوش هم چیزی به سرور اضافه نخواهد شد)
  • تگ مورد نظر را به شاخه اوریجین در سرور اضافه  کند
$ git push origin <TagName>

 

  • تگ‌ها را به شاخه اوریجین در سرور گیت اضافه کن:
$ git push origin --tags
  • رفتن به یک تگ(یعنی کامیتی که در آن تگ زده شده) در پروژه(نکته: اگر به یک تگ checkout کردیم برای ایجاد تغییرات باید یک برنچ ایجاد نماییم و تغییرات را به آن اعمال نماییم.)
$ git checkout <Tag name>

 

  • پروژه ای که از سایت گرفتم را تغییر دادم. این تغییرات در شاخه مَستر سیستم خودم انجام گرفته است. اگر بخواهم این تغییرات را در برنچ اصلی سایت قرار بدهم باید از این دستور کمک بگیرم
$ git push origin master

 

  • آخرین تغییراتی که در سایت وجود دارد که با نام اوریجین شناخته می‌شود را بگیرد و در شاخه مَستر سیستم خودم اَعمال کن
$ git pull origin master

 

  • تغییرات مستر را به شاخه اوریجین که در سرور است اضافه کن:
$ git push origin master

 

 

برنچ

  • نمایش تمامی برنچ‌های موجود
$ git branch

 

  • ساختن یک برنج جدید:
$ git branch <Name>

 

  • رفتن به برنچ دیگر(بکش بیرون اون رو):
$ git checkout <branchName>

 

  • پاک کردن یک برنچ:
$ git branch -d <BranchName>

 

  • برنجی که هِد در آن است را با برنج ذکر شده یکی می‌کند:
$ git merge <branchName>

 

  • تنها مشاهده تغییرات سرور آنلاین(ریموت)- نکته: تغییرات به لوکال منتقل نمی‌شود
$ git fetch origin 

 

 

کار با merge

  • پس از اینکه با دستور fetch‌ صحت تغییرات مخزن آنلاین را مشاهده کردیم،‌ آن را با دستور زیر از مخزن آنلاین به لوکال منتقل می‌کنیم.(حتما باید نام برنج آورده بشود)
$ git merge origin/master

 

 

کار با blame

  • نکته: وقتی یک باگ در یک فایل پیدا می‌کنیم git blame اجازه می‌دهد که آن را گردن یکی بیاندازید.
  • تاریخچه تغییرات فایل را نشان می‌دهد
$ git blame <FileName>

 

  • تاریخچه تغییرات لاین هشتم از فایل را نشان می‌دهد
$ git blame <FileName> -L8

 

  • تاریخچه تغییرات لاین هشتم تا لاین دهم از فایل را نشان می‌دهد(نفر آخری که تغییرات را ایجاد کرده است)در پروژه
$ git blame <FileName> -L8,10

 

 

 

برخی تنظیمات ساختاری خود گیت

  • می‌توانیم توسط دستورات زیر نام کاربری یا ایمیل یا دیگر موارد را برای گیت فعلی تنظیم نماییم
$ git config --global user.name برخی تنظیمات
$ git config --global user.name "Your Full Name"
$ git config --global user.email you@somewhere.com

 

 

 

 

 

    • behrooz mohamadi nsasab
    ۱۴
    دی

    Check the number of attached disks

    # cat /proc/scsi/scsi | egrep -i 'Host:' | wc -l
    7

    verify Using /sys class file

    (- - -)

    $ echo "- - -" >  /sys/class/scsi_host/host0/scan
    #("- - -") of the command act as wildcards meaning rescan everything​​
    

    (c t l)

    $ echo "c t l" >  /sys/class/scsi_host/hosth/scan 
    # h is the HBA number
    # c is the channel on the HBA
    # t is the SCSI target ID
    # l is the LUN.
    

    #If you don't have the host bus number, you must list all the existing host bus number on your system with the command

    $ ls /sys/class/scsi_host
    host0 host1 host2
    
    $ echo "- - -" > /sys/class/scsi_host/host0/scan
    $ echo "- - -" > /sys/class/scsi_host/host1/scan
    $ echo "- - -" > /sys/class/scsi_host/host2/scan
    
    <OR>
    
    # for host in `ls /sys/class/scsi_host/`;do
     echo "- - -" >/sys/class/scsi_host/${host}/scan;
    done
    

     

     

    URL

     

     

     

     

    • behrooz mohamadi nsasab
    ۰۲
    دی

    Basic Concepts in Firewalld

    Zones: The firewalld daemon manages groups of rules using entities called “zones”

    predefined zones:

    drop: The lowest level of trust. All incoming connections are dropped without reply and only outgoing connections are possible.
    block: Similar to the above, but instead of simply dropping connections, incoming requests are rejected with an icmp-host-prohibited or icmp6-adm-prohibited message.
    public: Represents public, untrusted networks. You don’t trust other computers but may allow selected incoming connections on a case-by-case basis.
    external: External networks in the event that you are using the firewall as your gateway. It is configured for NAT masquerading so that your internal network remains private but reachable.
    internal: The other side of the external zone, used for the internal portion of a gateway. The computers are fairly trustworthy and some additional services are available.
    dmz: Used for computers located in a DMZ (isolated computers that will not have access to the rest of your network). Only certain incoming connections are allowed.
    work: Used for work machines. Trust most of the computers in the network. A few more services might be allowed.
    home: A home environment. It generally implies that you trust most of the other computers and that a few more services will be accepted.
    trusted: Trust all of the machines in the network. The most open of the available options and should be used sparingly.

    Rule Permanence: In firewalld, rules can be designated as either permanent or immediate. Most firewall-cmd operations can take the "--permanent" flag

    Commands

    Install

    Install and Enable Your Firewall to Start at Boot

    $ sudoyum install firewalld  Install
    $ sudo systemctl enable firewalld
    $ sudo reboot

    Show Status(Information)

    verify the service is running and reachable by typing:

    $ sudo firewall-cmd --state
    output:  running

    Current Firewall Rules( which zone is currently selected as the default)

    firewall-cmd --get-default-zone
    output:
       publicPrint currently active zones
    

    Print currently active zones

    firewall-cmd --get-active-zones
    output:
     privateDNS
       interfaces: eth1
     publicweb
       interfaces: eth0

    list of the available zone

    $ sudo firewall-cmd --get-zones
    output:
    block dmz drop external home internal public trusted work

    see the specific configuration associated with a zone

    $ sudo firewall-cmd --zone=home --list-all
    output :
    home
      interfaces: 
      sources: 
      services: dhcpv6-client ipp-client mdns samba-client ssh
      ports: 
      masquerade: no
      forward-ports: 
      icmp-blocks: 
      rich rules:
    

    see the specific configuration associated with all zone

    sudo firewall-cmd --list-all-zones

    list of the available services

    firewall-cmd --get-services
    output
       RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

    list services

    sudo firewall-cmd --zone=public --list-all
    sudo firewall-cmd --zone=public --list-services

    List of ports

    sudo firewall-cmd --zone=public --list-ports

     

    Modify

    Changing the Zone of an Interface

    sudo firewall-cmd --zone=home --change-interface=eth0
    output
    success
    

    Adjusting the Default Zone

    sudo firewall-cmd --set-default-zone=home
    

    allow http/https traffic in our “public” zone

    sudo firewall-cmd --zone=public --add-service=http
    sudo firewall-cmd --zone=public --add-service=http  --permanent
    sudo firewall-cmd --zone=public --add-service=https
    sudo firewall-cmd --zone=public --permanent --add-service=https
    

    Opening a Port for your Zones

    sudo firewall-cmd --zone=public --add-port=5000/tcp
    sudo firewall-cmd --zone=public --add-port=4990-4999/udp
    sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
    sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
    sudo firewall-cmd --zone=public --permanent --list-ports

    change interface over zones

    sudo firewall-cmd --zone=public --change-interface=eth0
    

     

    URL

    • behrooz mohamadi nsasab
    ۰۱
    دی

    نمایش اطلاعات سرور پی اچ پی

    • http://192.168.40.42/?/Info
    • behrooz mohamadi nsasab
    ۰۱
    دی

    در آموزش زیر :
        آدرس شبکه :10.0.20.0/24
        نام دامنه: MyDomain.it
        سرور دی ان اس: 10.0.20.240
        سرورد دی ان اس برای فوروارد:192.168.100.12

    $ sudo apt install bind9 bind9utils dnsutils resolvconf

    $ sudo vim /etc/bind/named.conf.options

    ​​options {
        directory "/var/cache/bind";
        listen-on port 53 {localhost;10.0.20.0/24;192.168.40.0/24; };
        allow-query {localhost;10.0.20.0/24;192.168.40.0/24;};
        recursion yes;
        forwarders {
            192.168.100.12;
            8.8.8.8;
        };
        dnssec-validation auto;
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
    };

    $ sudo vim /etc/bind/named.conf.local

        zone "MyDomain.it" IN {
            type master;
            file "MyDomain.it";
        };

    $ vim /var/cache/bind/domain.ir

        $TTL 86400
    @    IN    SOA             ns1.MyDomain.it. root.MyDomain.it(
            20191214           ;Serial
            3600               ;Refresh
            900                ;Retry
            604800             ;Expired
            86400              ;Minimum TTL
    )
    
    ;name servers: NS records
        IN    NS       ns1.MyDomain.it.
        IN    A        192.168.40.40
        IN    MX 10    mail.MyDomain.it.
    
    ;name servers: A records
    ns1.MyDomain.it.         IN    A    192.168.40.40
    dns.MyDomain.it.         IN    A    192.168.40.40
    root.MyDomain.it.        IN    A    192.168.40.40
    MyDomain.it.             IN    A    192.168.40.40
    chat.MyDomain.it.        IN    A    192.168.40.41
    mail.MyDomain.it.        IN    A    192.168.40.42
    email.MyDomain.it.       IN    A    192.168.40.42
    pop3.MyDomain.it.        IN    A    192.168.40.42
    smtp.MyDomain.it.        IN    A    192.168.40.42
    imap.MyDomain.it.        IN    A    192.168.40.42
    behrooz.MyDomain.it.     IN    A    192.168.40.48
    • لاگ افتادن تمام کوئری‌هایی که به سرور DNS زده می‌شود(دستور زیر را در سرور وارد نمایید):
    # rndc querylog on
    • دستور زیر برای چک شدن named.conf و موارد included های آن است
    $ sudo named-checkconf
    
    • دستور زیر برای چک شدن زون‌ها می‌باشد
    # /usr/sbin/named-checkzone my.net /var/cache/bind/my.net.zone
    • در systemctl سرویس را در حالت اجرای اتوماتیک بعد از ریست قرار میدهیم
    $ sudo systemctl enable bind9
    $ sudo systemctl start  bind9
    • نکته: برای استفاده از فایل /etc/resolv.conf باید برنامه resolvconf نصب شده باشد

      URL

      URL

    • behrooz mohamadi nsasab