GNU/Linux >> Belajar Linux >  >> Linux

Cara memasukkan semua file dari direktori dalam skrip shell (/etc/init.d/iptables dalam kasus ini)

Tambahkan baris berikut ke skrip init.d Anda.

run-parts --report /etc/iptables/include.d

Itu akan menjalankan semua yang ada di direktori sebagai skrip shell (harus dapat dieksekusi).

Jika Anda hanya ingin menjalankan file yang diakhiri dengan .port, Anda dapat menggunakan sesuatu seperti:

run-parts --regex '\.port$' /etc/iptables/include.d/

Jika Anda ingin memastikan urutannya benar, Anda dapat memberi nama file:

10_web.port
20_ssh.port
etc..

for f in /etc/iptables/include.d/*
 . $f
done

perhatikan spasi antara titik dan %f

Saurabh benar - ini tidak perlu berfungsi seperti yang Anda inginkan, tetapi gunakan beberapa konvensi penamaan misalnya 10-xxx, 20-yyy dan seterusnya dan mungkin dapat dikelola.


Anda dapat mendefinisikan fungsi sederhana di bash:

function include() {
    for FILE in $( find "$1" -type f -print | sort )
    do
        source $FILE
    done
}

lalu:

include some_dir/*

atau bahkan:

include some_dir/*.conf

Linux
  1. perintah grpck – Hapus entri yang rusak atau duplikat di file /etc/group dan /etc/gshadow.

  2. Bagaimana cara mengetahui dari folder mana suatu proses sedang berjalan?

  3. Apa hubungan antara direktori /etc/init.d dan /etc/rcX.d di Linux?

  1. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  2. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?

  3. bagaimana cara memodifikasi /etc/hosts dari skrip shell?

  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. /etc/passwd menampilkan pengguna dalam grup, tetapi /etc/group tidak

  3. Bagaimana saya bisa mengembalikan chmod pada direktori dll?