Automasi dalam Linux: dari cron dan Bash ke Ansible dan systemd

Kemaskini terakhir: 9 April 2026
Pengarang TecnoDigital
  • Linux menawarkan ekosistem lengkap untuk mengautomasikan tugas: Skrip Bash, cron, anacron, at dan pemasa systemd merangkumi segala-galanya daripada pelaksanaan sekali sahaja hinggalah kerja yang kompleks dan berulang.
  • Penggunaan crontab, pembolehubah persekitaran, log dan mekanisme penguncian yang betul seperti flock adalah kunci kepada automasi yang andal dan mudah diselenggara.
  • Keselamatan dan prestasi dipertingkatkan dengan mengautomasikan kawalan: pengerasan SSH, tembok api, SELinux, pembersihan pakej dan perkhidmatan serta profil pengoptimuman seperti ditala.
  • Alat orkestrasi seperti Ansible membolehkan anda melanjutkan automasi ini kepada puluhan atau ratusan pelayan, memastikan konfigurasi yang konsisten dan boleh diulang.

automasi dalam Linux

Jika anda menggunakan Linux setiap hari, lambat laun anda akan menyedari bahawa Mengulang tugas yang sama berulang kali adalah satu pembaziran masa yang besar.Sandaran manual, pembersihan fail sementara, pengemaskinian pakej, pemeriksaan status sistem... semua itu boleh diwakilkan kepada sistem untuk berlaku secara automatik semasa anda melakukan perkara yang lebih menarik (atau sedang tidur dengan nyenyak).

Ekosistem Linux telah direka untuk ini selama beberapa dekad: Automasikan tugasan dengan andal, fleksibel dan selamatDaripada arahan cron dan at klasik, melalui anacron, kepada pemasa sistem dan liga besar dengan Ansible, anda mempunyai pelbagai alat untuk merangkumi segala-galanya daripada skrip paling mudah hinggalah kepada orkestrasi beratus-ratus pelayan. Dalam panduan ini, kami akan menggabungkan semua bahagian ini dan menjadikannya praktikal dengan penjelasan terperinci dan contoh yang jelas.

Apakah maksud automasi dalam Linux dan mengapa anda perlu mengambil berat?

Apabila kita bercakap tentang automasi dalam Linux, kita merujuk kepada untuk menjadualkan pelaksanaan arahan, skrip atau perkhidmatan tanpa campur tangan manusiaSama ada sekali sahaja atau secara berkala. Ini terpakai untuk komputer riba peribadi anda dan kluster pelayan pengeluaran.

Automasi mempunyai beberapa kelebihan yang jelas: ia mengurangkan ralat manusia dengan menghapuskan tugasan yang berulang, menjimatkan masa dan memastikan bahawa Tugas-tugas kritikal sentiasa dilaksanakan dengan ketepatan yang sama dan membolehkan pentadbiran sistem yang piawai. Linux amat bagus dalam hal ini kerana ia direka bentuk dari awal untuk berfungsi dengan skrip dan alat konsol yang sangat boleh digabungkan antara satu sama lain.

Memang benar ada yang bimbang bahawa automasi yang berlebihan akan mewujudkan kebergantungan teknologi atau pengetahuan manual akan hilang, tetapi Apabila digunakan dengan betul, ia membebaskan masa untuk tugasan bernilai lebih tinggi.: reka bentuk seni bina, analisis keselamatan, penambahbaikan proses atau pembangunan langsung.

Dalam operasi harian, automasi dalam Linux biasanya berdasarkan beberapa tonggak: Skrip Bash, cron/anacron, at, pemasa sistem dan alatan pengurusan konfigurasi seperti AnsibleSetiap satunya merangkumi jenis keperluan yang berbeza, yang akan kita lihat secara terperinci.

Cron: klasik penting bagi automasi berkala

tugasan berjadual dalam Linux

Jika terdapat satu alat yang perlu diketahui oleh setiap pentadbir Linux, ia adalah cron. Cron ialah daemon yang berjalan di latar belakang dan melancarkan arahan atau skrip pada masa tertentu.: setiap minit, setiap jam, setiap hari, setiap minggu, setiap bulan atau dalam kombinasi yang lebih kompleks.

Namanya berasal dari kronos, masa dalam bahasa YunaniVixie Cron telah wujud dalam Unix sejak akhir 70-an. Kebanyakan pengedaran moden (Debian, Ubuntu, Fedora, dll.) menggunakan beberapa varian Vixie Cron, yang telah diuji dengan baik dan stabil. Untuk persekitaran pengeluaran, ia merupakan komponen asas, hampir sama pentingnya dengan kernel itu sendiri.

Menggunakan cron membolehkan anda mengautomasikan perkara seperti sandaran setiap malam, penggiliran log, tugas pemantauan, skrip penyelenggaraan atau penjanaan laporanFalsafahnya mudah: anda menentukan apa yang hendak dijalankan dan bila, dan cron akan menguruskan selebihnya, tanpa tetingkap grafik atau cerita.

Tambahan pula, cron tersedia pada hampir semua sistem seperti Unix, jadi Apa yang anda pelajari dengan cron berguna untuk pelbagai persekitaran yang berbezadaripada VPS murah kepada pelayan korporat.

Seni bina cron Linux: daemon, crontab dan direktori khas

Untuk menggunakan Cron dengan berkesan, adalah berguna untuk memahami bagaimana ia distrukturkan secara dalaman. Secara amnya, Sistem ini distrukturkan di sekitar daemon crond, fail crontab dan beberapa direktori khas. diuruskan oleh sistem.

Daemon cron bermula bersama sistem (biasanya melalui systemd atau init yang sepadan) dan Dia tetap berjaga, memeriksa setiap minit untuk tugasan yang boleh dicetuskan.Apabila ia mengesan bahawa baris sepadan dengan minit semasa, ia melancarkan arahan yang berkaitan dalam proses shell baharu.

Setiap pengguna sistem boleh mempunyai fail penjadualan mereka sendiri, yang dikenali sebagai crontab. Crontab pengguna biasanya disimpan dalam laluan seperti /var/spool/cron/ atau /var/spool/cron/crontabs/Bergantung pada pengedaran. Adalah penting untuk tidak mengeditnya secara manual, tetapi melalui arahan. crontab, yang mengesahkan sintaks dan memberitahu daemon bahawa terdapat perubahan.

Selain crontab pengguna, terdapat juga mekanisme cron yang direka bentuk untuk sistemFail /etc/crontab, direktori /etc/cron.d/, dan direktori berkala seperti /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, dan /etc/cron.monthly. Direktori yang terakhir ini mengandungi skrip yang dijalankan oleh sistem secara berkala menggunakan alat seperti anacron atau utiliti run-parts.

Idea umum adalah bahawa Daemon cron memakan fail dan direktori ini.dan menyemak setiap minit jika ada yang perlu dilaksanakan. Seni bina modular ini memudahkan pakej sistem memasang tugas mereka sendiri tanpa menjejaskan konfigurasi global.

sintaks crontab: lima medan dan operatornya

Salah satu perkara yang paling anda hafal apabila anda bermula dengan cron ialah sintaks barisnya. Setiap entri crontab pengguna terdiri daripada lima medan cap waktu serta arahan untuk melaksanakanWalaupun kita tidak menghasilkan semula jadual literal, medan klasik ialah minit, jam, hari dalam sebulan, bulan dan hari dalam seminggu.

Setiap medan menerima nilai angka, julat, senarai yang dipisahkan koma, langkah dengan garis miring ke hadapan dan juga asterisk biasa untuk menunjukkan "semua nilai yang mungkin". Terima kasih kepada operator ini, anda boleh menyatakan corak yang kompleks tanpa perlu menulis dua puluh baris yang berbeza.

Di samping itu, banyak pelaksanaan cron menerima pintasan khas seperti @daily, @hourly, @weekly, @monthly, @reboot dan yang serupa. Alias ​​​​ini memudahkan tugas biasa, jadi anda tidak perlu mengingati susunan medan.

Apabila anda bekerja dengan fail /etc/crontab atau dengan /etc/cron.d/, Medan keenam ditambah untuk menentukan pengguna yang akan menjalankan tugasan tersebut.Ini adalah kunci untuk tugas sistem yang perlu dijalankan sebagai root atau akaun perkhidmatan lain.

Menghafal sintaks ini dan berlatih dengan beberapa contoh dunia sebenar adalah apa yang membezakan antara penggunaan cron yang kekok dan yang berjaya. Automasi yang bersih, boleh dibaca dan mudah diselenggara dari semasa ke semasa.

Pengurusan crontab profesional: penyuntingan, penyenaraian dan pemversian

Perintah itu crontab Ia merupakan antara muka rasmi untuk mengendalikan tugasan berjadual pengguna. Dengannya, anda boleh mencipta, mengedit, menyenaraikan dan juga memadam crontab anda, dan yang paling penting: Anda mengelakkan daripada menyentuh fail dalaman sistem secara langsung, yang mengurangkan ralat dan masalah kebenaran.

Amalan yang sangat disyorkan dalam persekitaran yang serius adalah Kekalkan kandungan crontab dalam fail teks berversi menggunakan GitDengan cara ini anda boleh menyemak siapa yang mengubah apa dan bila, membandingkan versi lama dan memulihkan konfigurasi sebelumnya dengan cepat jika ada masalah selepas pengubahsuaian.

Ia juga mungkin untuk memasang crontab daripada fail luaran, yang sangat sesuai dengan prosedur atau infrastruktur penggunaan automatik sebagai kodDengan cara ini, daripada mengedit secara manual pada setiap pelayan, anda menghantar fail yang sama kepada semua orang dan menggunakan perubahan secara seragam.

Dalam praktiknya, pentadbir yang berpengalaman biasanya mendokumentasikan setiap item baris dengan komen sebelumnya, tugasan berkaitan kumpulan dan mengekalkan penamaan dan konvensyen laluan yang jelas untuk skrip yang digunakan dalam cron. Disiplin itu menjadikan hidup lebih mudah beberapa bulan kemudian.

  Bagaimana untuk menamakan semula Fail dalam Linux

Contoh biasa tugasan automatik dengan cron

Untuk memahami potensi cron, semak sahaja kes penggunaan biasa. Salah satu yang paling kerap berlaku ialah penyelenggaraan sistem rutin: putar dan mampatkan log, bersihkan fail sementara, jana semula indeks carian atau padam sandaran lama.

Satu lagi blok yang sangat biasa ialah tugas pemantauanAgak biasa untuk menjalankan skrip yang menyemak penggunaan cakera, beban sistem, kesihatan perkhidmatan tertentu atau penggunaan memori, dan jika ia mengesan ambang berbahaya, ia akan menjana log, menghantar e-mel atau mencetuskan amaran kepada sistem luaran.

Dalam bidang pembangunan dan pangkalan data, cron juga mempunyai banyak potensi. Contohnya, tugasan berjadual digunakan untuk melakukan sandaran pangkalan data, menjalankan skrip yang menjana semula metrik atau mengeksport laporan ke fail CSVatau bahkan untuk mengatur saluran pemprosesan data kecil.

Semua ini hampir selalu disokong oleh skrip Bash atau bahasa lain yang melakukan kerja sebenar, manakala cron menjaga "bila." Pemisahan tanggungjawab ini memastikan crontab bersih dan logik perniagaan dirangkum dalam fail berasingan.

Pembolehubah persekitaran dalam cron: sumber ralat klasik

Salah satu kesilapan yang paling biasa apabila seseorang bermula dengan cron ialah menganggap bahawa tugasan dilaksanakan secara automatik. persekitaran yang sama seperti semasa anda bekerja di terminal interaktifTiada apa yang lebih jauh daripada kebenaran: cron menjalankan arahan dalam konteks yang sangat terhad, dengan PATH terhad dan tanpa penyesuaian shell anda.

Ini bermakna banyak skrip yang berfungsi dengan sempurna apabila dijalankan secara manual gagal di bawah cron kerana Mereka tidak dapat mencari binari, mereka tidak dapat mencari laluan relatif, atau mereka bergantung pada pembolehubah persekitaran yang tidak wujud.Penyelesaiannya mudah: tentukan secara eksplisit PATH dan sebarang pembolehubah lain yang diperlukan dalam crontab itu sendiri atau dalam skrip.

Ia juga perkara biasa untuk mengawal tingkah laku e-mel dengan pembolehubah MINYAKsupaya output standard tugasan sama ada sampai ke peti mel pengguna atau dibuang. Dalam persekitaran di mana sistem mel tidak dikonfigurasikan, adalah dinasihatkan untuk mengalihkan output ke fail dalam /dev/null untuk mengelakkan pengumpulan senyap.

Secara ringkasnya, semasa mereka bentuk kerja cron, anda perlu menganggapnya berjalan dalam sejenis "persekitaran minimalis" dan itu Semua keperluan skrip anda mesti diisytiharkan secara eksplisit.

/etc/crontab, /etc/cron.dy ialah direktori berkala

Selain crontab individu, Linux menawarkan crontab sistem biasanya terletak di /etc/crontabFail ini berbeza daripada fail pengguna kerana ia merangkumi medan tambahan untuk menunjukkan akaun yang akan digunakan untuk melancarkan arahan, sesuatu yang asas untuk tugasan global.

Fail itu biasanya mentakrifkan, antara lain, pelaksanaan skrip dalam /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly dan /etc/cron.monthlyDalam banyak sistem, pelaksanaan ini diwakilkan kepada alat seperti anacron, yang memastikan tugas dilaksanakan walaupun komputer tidak dihidupkan pada waktu yang tepat.

Direktori /etc/cron.d/ Ia menempatkan fail crontab tambahan, biasanya dipasang oleh pakej sistem atau alat luaran. Setiap fail mengikuti format yang sama seperti /etc/crontab, termasuk medan pengguna. Ini adalah cara yang disyorkan untuk Tambah tugas sistem tanpa menyentuh crontab utama.Ini meningkatkan penyelenggaraan dan mencegah konflik semasa kemas kini.

Aliran kerja yang biasa ialah daemon cron menyemak fail-fail ini secara berkala dan, digabungkan dengan anacron atau run-parts, Ia mencetuskan skrip yang terkandung dalam direktori berkala pada masa yang sepadan.Sebagai pentadbir, anda hanya perlu menyediakan skrip anda dengan betul di tempat yang betul.

Anacron: apabila peralatan tidak sentiasa dihidupkan

Satu batasan cron yang diketahui ialah jika komputer dimatikan apabila tiba masanya untuk menjalankan tugas, pelaksanaan tersebut akan hilang. Anacron dicipta tepat untuk mengisi jurang ini.terutamanya pada mesin yang tidak dihidupkan 24/7, seperti komputer riba atau desktop pejabat.

Anacron tidak begitu dipandu oleh tarikh dan masa yang tepat, tetapi oleh bilangan hari yang telah berlalu sejak pelaksanaan tugas terakhir. Apabila sistem bermula, ia akan menyemak tugasan harian, mingguan atau bulanan yang telah dilangkau. dan memprogram semulanya untuk dijalankan dengan sedikit kelewatan yang boleh dikonfigurasikan.

Medan kelewatan dalam minit itu penting kerana Ia menghalang semua kerja yang belum selesai daripada dilancarkan sekaligus semasa permulaan.Ini boleh membebankan sistem. Sebaliknya, ia dijalankan secara berperingkat, membolehkan pasukan bermula dengan lebih beransur-ansur.

Dalam kebanyakan sistem moden, jika anacron wujud, ia bertanggungjawab untuk skrip dalam /etc/cron.daily, /etc/cron.weekly dan /etc/cron.monthly, manakala cron mengendalikan tugas yang lebih halus dan kerap. Gabungan ini menjadikannya Sistem automasi haruslah teguh walaupun pada mesin yang kerap dimatikan..

Perintah pada: pelaksanaan sekali sahaja pada masa hadapan

Walaupun cron dan anacron memberi tumpuan kepada tugasan berulang, arahan at merangkumi kes yang sangat mudah dan berguna: menjadualkan arahan untuk dijalankan hanya sekali pada masa hadapan yang tertentu. Ia seperti meninggalkan nota yang dilekatkan pada sistem untuk membuatnya melakukan sesuatu "esok pada pukul 9:30" atau "dalam 2 jam".

Sintaks `at` agak mesra pengguna dan membolehkan ungkapan masa semula jadi. Sebaik sahaja anda menentukan tugas tersebut, Sistem menyimpannya dalam barisan dan melaksanakannya tepat pada waktunya.Selepas itu, tugas tersebut hilang, tidak seperti cron, yang menyimpan tugas tersebut sehingga anda mengubah suai atau memadamkannya.

Alat ini amat sesuai untuk tugasan tertentu yang anda tidak mahu lupakan tetapi tidak masuk akal sebagai tugasan berulang: permulaan semula yang dijadualkan, penyelenggaraan berjalan selepas tempoh kerja atau ujian yang mesti dilancarkan pada masa tertentu.

Dalam kombinasi dengan skrip yang baik, `at` menjadi wildcard elegan yang ramai pengguna lupa kewujudannya, tetapi yang Ia boleh memudahkan kehidupan seharian anda apabila mencipta entri cron baharu tidak berbaloi..

pemasa sistem: alternatif moden kepada cron

Dalam pengedaran moden yang menggunakan systemd (Ubuntu, Debian, Fedora, CentOS dan banyak lagi), terdapat cara lain untuk menjadualkan tugasan: pemasa sistemDaripada bergantung pada crontab, di sini anda mentakrifkan unit perkhidmatan (.service) dan unit pemasa (.timer) yang diuruskan oleh systemd seperti perkhidmatan lain.

Pemasa sistem menonjol kerana Mereka berintegrasi dengan sempurna dengan seluruh ekosistem sistemAnda boleh melihat status, log dan kebergantungan menggunakan alatan biasa yang sama (journalctl, systemctl, dll.). Ini sesuai untuk kerja kompleks yang perlu dimulakan selepas perkhidmatan lain, menguatkuasakan dasar permulaan semula atau mengekalkan log terperinci.

Pemasa biasa terdiri daripada fail perkhidmatan yang mentakrifkan apa yang dilaksanakan (skrip, binari, tindakan tertentu) dan fail pemasa yang menentukan bila dan berapa kerap ia dilancarkan. Systemd menawarkan ungkapan dan pilihan kalendar yang fleksibel seperti kegigihan.yang memastikan kerja dijalankan selepas penutupan jika ia "dilangkau".

Apabila memilih antara pemasa cron dan systemd, peraturan praktikal yang baik adalah bertanya kepada diri sendiri sama ada anda memerlukannya log bersepadu, kebergantungan perkhidmatan atau kegigihan lanjutanJika jawapannya ya, pemasa biasanya lebih baik. Untuk tugasan yang mudah dan universal, cron kekal sebagai pilihan yang veteran dan sah sepenuhnya.

  Krisis IT: sejarah, gangguan bekalan elektrik utama dan kesan semasa

Akhirnya, tiada peperangan antara kedua-dua pendekatan tersebut: Anda boleh menggunakan cron untuk tugasan mudah dan pemasa untuk tugasan yang canggih., tanpa sebarang masalah wujud bersama dalam sistem yang sama.

Kawalan keselamatan dan akses dalam cron

Oleh kerana cron boleh melaksanakan hampir semua arahan dengan kebenaran pengguna yang sesuai, keselamatan merupakan isu penting. Linux menggabungkan mekanisme kawalan berdasarkan fail /etc/cron.allow dan /etc/cron.denyyang menentukan pengguna mana yang boleh menggunakan cron.

Bergantung pada konfigurasi, sistem boleh membenarkan cron hanya kepada mereka yang berada dalam senarai putih, atau secara eksplisit menafikannya kepada mereka yang berada dalam senarai hitam. Mengurus fail-fail ini dengan betul adalah penting dalam persekitaran berbilang pengguna atau pelayan yang terdedah.di mana tidak wajar bagi mana-mana akaun untuk memenuhi sumber dengan tugasan yang direka bentuk dengan buruk.

Di samping itu, adalah dinasihatkan untuk mengehadkan skrip yang dijalankan sebagai root dan menyemak kod dengan teliti bagi sebarang tugasan yang dijadualkan dengan keistimewaan tinggi. Pengabaian mudah dalam skrip cron dengan keistimewaan pentadbir boleh membuka kelemahan keselamatan. sangat serius.

Dalam konteks yang lebih maju, alat seperti SELinux atau AppArmor boleh menambah lapisan kawalan tambahan ke atas apa yang boleh dilakukan oleh proses yang dilancarkan oleh cron, sekali gus mengukuhkan lagi postur keselamatan sistem.

Menyahpepijat kerja cron: metodologi dan ralat biasa

Apabila tugasan yang dijadualkan tidak mencapai apa yang anda harapkan, strategi terbaik bukanlah "berpusing-pusing tanpa tujuan," tetapi teruskan. metodologi diagnostik kecilLangkah pertama adalah untuk mengesahkan bahawa daemon cron sememangnya aktif dan diaktifkan, menggunakan alat perkhidmatan pengedaran.

Selepas itu, anda perlu Semak log sistem dan log cron tertentu Ya, ia wujud. Anda akan sering menemui ralat sintaks dalam crontab, masalah kebenaran atau kegagalan pelaksanaan skrip yang tidak begitu ketara.

Langkah logik seterusnya adalah melaksanakan skrip atau arahan yang cuba dilancarkan oleh cron secara manual, tetapi mensimulasikan persekitaran cron sebaik mungkin: pengguna yang sama, laluan yang sama, tanpa bergantung pada alias atau fungsi shell interaktif anda.

Antara ralat yang paling biasa ialah: terlupa untuk mengalihkan output standard dan ralat, menggunakan laluan relatif yang tidak masuk akal apabila cron menjalankan skrip, mengandaikan bahawa PATH termasuk direktori yang sebenarnya tidak ada di sana, atau tidak mempertimbangkan bahawa berbilang contoh tugas yang sama mungkin bertindih dari semasa ke semasa.

Membetulkan masalah ini melibatkan Takrifkan semuanya secara eksplisit, gunakan laluan mutlak, tambahkan log debug dan lindungi tugas daripada pelaksanaan serentak. jika kemungkinan itu wujud.

Amalan profesional yang baik dengan cron

Selama bertahun-tahun, komuniti pentadbir sistem telah menyaring beberapa cadangan yang membezakan antara "mempunyai empat kerja cron yang disediakan secara tidak teratur" dan uruskan automasi secara profesional.

Peraturan emas ialah sentiasa alihkan output setiap tugasan ke fail log /dev/nullJika anda tidak melakukan ini, cron akan cuba menghantar output tersebut melalui e-mel kepada pengguna, yang boleh memenuhi peti mel root atau hilang begitu sahaja jika sistem mel tidak dikonfigurasikan, menjadikan diagnosis sangat sukar.

Satu lagi amalan penting ialah pakejkan logik ke dalam skrip berasingan dan bukannya menulis arahan sepanjang kilometer terus ke dalam crontabDengan cara ini anda boleh membuat versi skrip, mengujinya secara manual, mendokumenkannya dan menggunakannya semula dengan lebih mudah.

Untuk mengelakkan masalah bertindih, alat seperti kawanan Ia membenarkan pelaksanaan mekanisme penyekatan mudah: jika satu contoh tugas masih berjalan, yang seterusnya sama ada menunggu atau tamat tanpa dilaksanakan. Ini penting untuk tugas sandaran atau pemprosesan data tugas berat.

Akhir sekali, adalah idea yang baik untuk memberi komen pada setiap baris crontab dengan penerangan yang jelas dan menyimpan fail tersebut. di bawah kawalan versi dengan Git atau sistem yang serupaSeiring berlalunya masa (atau pentadbir bertukar), komen dan sejarah perubahan tersebut akan menjadi emas tulen.

Skrip Bash: Enjin yang menjalankan automasi

Semua perkara di atas tidak akan berjaya jika kita tidak mempunyai sesuatu yang berguna untuk dijalankan, dan di situlah skrip Bash memainkan peranan. Skrip hanyalah fail teks dengan arahan yang dilaksanakan oleh shell satu demi satu, seolah-olah anda menaipnya sendiri, tetapi tanpa rasa jemu.

Dari segi sejarah, skrip shell telah menjadi teras automasi dalam Unix sejak tahun 70-an. Dengan ketibaan Bash sebagai shell lalai dalam banyak pengedaran, Bahasa skrip yang mudah tetapi sangat berkuasa telah disatukan, sesuai untuk menghubungkan komponen sistem, memproses fail dan menyelaras program luaran.

Pada tahap praktikal, skrip Bash biasa bermula dengan baris #! / Bin / Bash untuk menunjukkan shell yang harus mentafsirkannya, mentakrifkan pembolehubah, melaksanakan arahan, menggunakan syarat dan gelung, dan menambah mesej bermaklumat dengan echo supaya kita tahu apa yang sedang berlaku.

Terdapat skrip yang sangat mudah yang hanya memindahkan beberapa fail dan yang lain yang jauh lebih rumit, melakukan sandaran lengkap, menjana laporan dan Ia digabungkan dengan cron atau at untuk dijalankan secara automatik sering sekali.

Kuncinya ialah sebarang tugasan yang diulang terlalu kerap di terminal adalah calon yang sempurna untuk menjadi skrip, menjimatkan masa dan kesilapan bodoh dalam jangka masa sederhana.

Contoh praktikal: sandaran harian dengan Bash dan cron

Satu kes yang sangat biasa ialah keinginan Buat sandaran harian bagi folder penting tertentuDengan Bash, ini diselesaikan dalam beberapa baris, mewujudkan direktori dengan tarikh semasa dan memasukkan data yang berkaitan di dalamnya.

Logik umum biasanya seperti ini: jana rentetan dengan tarikh hari ini, bina laluan destinasi yang menyertakannya, cipta direktori itu jika ia tidak wujud, salin data penting anda secara rekursif, dan akhirnya, paparkan mesej yang menunjukkan bahawa sandaran telah berjaya diselesaikan.

Jika anda juga menggabungkannya dengan penyulitan sandaran, penggunaan tar/gz pada Linux atau pengangkutan selamat ke pelayan lain melalui terowong VPN atau SSH, Anda boleh menyediakan strategi sandaran yang baik tanpa banyak kerumitan, bergantung sepenuhnya pada alat Linux klasik.

Anda boleh menyimpan skrip ini dalam direktori seperti /usr/local/sbin atau dalam folder skrip anda dan memberikannya kebenaran untuk melaksanakan. Kemudian, gunakan cron untuk menjalankan program. pelaksanaan automatik pada masa pelayan tidak sedang dimuatkanContohnya, setiap malam pada waktu tengah malam.

Jika anda juga menggabungkannya dengan penyulitan sandaran atau pengangkutan selamat ke pelayan lain melalui terowong VPN atau SSH, Anda boleh menyediakan strategi sandaran yang baik tanpa banyak kerumitan, bergantung sepenuhnya pada alat Linux klasik.

Automasi asas dengan skrip Bash: langkah pertama

Jika anda baru bermula dengan penulisan skrip, perkara paling bijak untuk dilakukan ialah mengambilnya selangkah demi selangkah. Pertama, buat fail kosong, edit dengan editor kegemaran anda, dan tambahkan beberapa baris arahan.Simpannya, berikan kebenaran pelaksanaan dan ujinya.

Latihan pertama biasanya terdiri daripada Automasikan tugas mudah seperti menyenaraikan fail, memindahkannya ke folder tertentu atau membersihkan direktori sementara.Ini akan membiasakan anda dengan sintaks, pembolehubah, kebenaran dan mesej output.

Kemudian, anda boleh mempertimbangkan skrip yang merekodkan tarikh dan masa dalam log sekali-sekala, membuat salinan termampat /etc/ pada waktu malam, atau menyemak ruang cakera dan menghantar amaran apabila peratusan penggunaan tertentu telah dilebihi.

  Penggerak dalam bangunan pintar: kunci kepada automasi rumah dan bangunan

Tabiat yang sangat sihat adalah dengan menggunakan echo sebagai alat penyahpepijatanDengan cara ini, skrip akan mencetak langkah yang sedang dilaksanakan, nilai pembolehubah utama dan sama ada ia telah menghadapi sebarang masalah. Ini memudahkan pencarian ralat logik.

Dengan latihan, anda akan membina "perpustakaan peribadi" skrip kecil yang menjadi pembantu senyap anda, sedia untuk dijalankan sendiri terima kasih kepada cron, at atau pemasa sistem.

Automasi dan keselamatan: memperkukuhkan pelayan Linux

Hampir setiap kali automasi pada pelayan yang serius dibincangkan, perbualan pasti beralih kepada keselamatan. Memperkukuhkan pelayan Linux melibatkan pengurangan permukaan serangannya, menerapkan amalan terbaik dan mengautomasikan kawalan keselamatan. supaya mereka tidak bergantung pada mengingat "dengan tangan".

Blok kunci pertama ialah pengurusan akaun penggunaAdalah disyorkan untuk mengelakkan nama pengguna generik atau jelas (seperti "admin" atau "oracle"), menggunakan nama yang kurang boleh diramal, mewujudkan dasar kata laluan yang mantap dengan tamat tempoh berkala dan melaraskan julat UID supaya ia tidak mudah diteka.

Satu lagi perkara yang perlu dipertimbangkan ialah pakej perisian yang dipasang. Lebih banyak perisian yang tidak diperlukan, lebih besar permukaan serangan anda. Itulah sebabnya amalan yang baik untuk... Senaraikan pakej yang dipasang, alih keluar pakej yang tidak digunakan dan pantau kebergantungan. untuk mengelakkan gangguan perkhidmatan kritikal secara tidak sengaja.

Anda juga perlu menyemak perkhidmatan yang sedang berjalan menggunakan alat seperti systemctl, menghentikan dan melumpuhkan perkhidmatan yang tidak menyumbang apa-apa, dan Semak port pendengaran menggunakan utiliti seperti netstat atau ss untuk memastikan hanya mereka yang benar-benar perlu sahaja dibuka.

Jika kita menambah pengerasan SSH yang baik (melumpuhkan log masuk root langsung, menggunakan pengesahan kunci, melaraskan tamat masa) dan penggunaan tembok api seperti firewalld atau iptables, Kita mendapat beberapa lapisan perlindungan daripada serangan luaran tanpa terlalu banyak komplikasi.

SELinux, tembok api dan pengoptimuman dengan pengubahsuaian yang ditala

Bagi persekitaran yang mengutamakan keselamatan, alat seperti pengerasan dengan SELinux Ia bertindak sebagai penghalang kawalan akses mandatori tambahan, mengehadkan proses mana yang boleh melakukan apa, melangkaui kebenaran tradisional.

Adalah penting untuk menyemak status SELinux, sebaik-baiknya mengkonfigurasinya dalam mod aplikasi yang ketat dan menyesuaikan dasar mengikut keperluan sistem dengan utiliti tertentu. Walaupun ia mungkin kelihatan agak menakutkan pada mulanya, apabila dikonfigurasikan dengan betul ia menyekat banyak tindakan yang tidak diingini.

Dalam konteks rangkaian, firewalld atau iptables Ia membolehkan anda menentukan peraturan terperinci mengenai trafik masuk dan keluar.dengan hanya membuka perkhidmatan tertentu seperti SSH, HTTP atau apa sahaja yang benar-benar diperlukan. Ini dapat mengurangkan bilangan vektor serangan yang berpotensi.

Sebaliknya, terdapat alat seperti ditala, direka untuk mengoptimumkan prestasi sistem menggunakan profil yang telah ditetapkan berdasarkan jenis beban kerja: pelayan, desktop, tetamu maya, dsb. Mengaktifkan profil yang sesuai dan membiarkan tetapan mengurus parameter tertentu menjimatkan masa dan meningkatkan prestasi keseluruhan.

Semua ini sia-sia jika dilakukan hanya sekali dan kemudian dilupakan. Keselamatan dan prestasi memerlukan semakan berterusan, tampalan berkala dan pemantauan berterusan.Dan di situlah automasi memainkan peranan: banyak tugas rutin ini boleh diprogramkan untuk berjalan sendiri.

Ansible: automasi berskala besar dan pengurusan konfigurasi

Apabila anda beralih daripada satu atau dua pelayan kepada berpuluh-puluh atau beratus-ratus, skrip cron dan tempatan gagal mengekalkan konsistensi. Ansible memasuki dunia sebagai alat pengurusan automasi dan konfigurasi Ia tidak memerlukan ejen pada nod, dan bergantung pada SSH dan fail YAML yang boleh dibaca.

Dengan Ansible, anda menentukan inventori hos, menjana pasangan kunci SSH untuk pengesahan tanpa kata laluan dan mengautomasikannya. Pentadbiran sistem Linux menulis buku panduan yang menerangkan keadaan pelayan yang diingini: pakej mana yang perlu dipasang, perkhidmatan mana yang perlu aktif, fail konfigurasi mana yang perlu ada, dsb.

Kelebihan utamanya ialah anda boleh menggunakan buku panduan yang sama pada banyak sistem sekaligus dan untuk mendapatkan hasil yang konsisten dan boleh diulangIni sangat sukar dicapai jika setiap pentadbir menggunakan perubahan secara manual. Tambahan pula, Ansible adalah idempotent: menjalankan playbook yang sama beberapa kali tidak merosakkan apa-apa; ia hanya memastikan semuanya adalah seperti yang sepatutnya.

Contohnya, buku panduan mudah boleh mengendalikan pemasangan tmux pada semua pelayan dalam kumpulan "web" hanya dengan beberapa baris kod. Dari situ, automasi yang lebih kompleks boleh dibina: penggunaan aplikasi, perubahan konfigurasi pukal, putaran kekunci dan sebagainya.

Dalam konteks keselamatan, Ansible sesuai untuk Gunakan dasar pengerasan, konfigurasikan tembok api, laraskan SSH atau gunakan skrip audit dalam semua nod secara berpusat, mengelakkan kesilapan dan penyimpangan.

Automasi setiap hari: contoh dan falsafah kerja

Di luar alat khusus, terdapat pola pikir yang berkembang dari semasa ke semasa: Setiap kali anda mengulangi sesuatu secara manual beberapa kali, adalah wajar untuk bertanya kepada diri sendiri sama ada ia tidak boleh diautomasikan.Linux secara literalnya dibuat untuk itu.

Sesetengah orang juga melihat terminal sebagai pembantu senyap yang melakukan perkara untuk anda di latar belakang: menjadualkan peringatan e-mel, menjana ringkasan mingguan, menyegerakkan direktori dengan pelayan jauh atau Bersihkan folder muat turun dan sementara tanpa perlu mengangkat jari.

Malah alat seperti di, yang sering dilupakan, membenarkan Jadualkan pelaksanaan sekali sahaja esok pada masa tertentu tanpa merumitkan hidup anda dengan kerja cron.Digabungkan dengan skrip yang berstruktur dengan baik, utiliti ini menjadikan Linux anda sejenis "mesin basuh pinggan mangkuk" digital yang menguruskan tugas-tugas berulang.

Perkara penting adalah untuk mendekati automasi dengan pertimbangan dan akal fikiranIa bukan tentang mengautomasikan kerana ia trendy, tetapi tentang menilai tugasan mana yang memakan masa, terdedah kepada kesilapan manusia atau memberi impak jika dilupakan dan mengutamakan tugasan tersebut dahulu.

Lama-kelamaan, anda akhirnya menulis latihan kecil untuk diri sendiri: kerja cron yang merekodkan tarikh dan masa untuk memastikan anda telah mengkonfigurasi sintaks dengan betul, skrip sandaran, skrip pemantauan dan juga penukaran beberapa tugas tersebut kepada pemasa sistem dengan kegigihan dan kelewatan rawak untuk mengagihkan beban.

Dengan menggabungkan semua bahagian ini—skrip Bash, cron, anacron, at, pemasa sistem, Ansible, amalan terbaik keselamatan, tembok api dan alat pengoptimuman—anda akhirnya membina persekitaran di mana Linux berfungsi untuk anda 24/7, menyelenggara sandaran, mengukuhkan keselamatan dan menjaga prestasi., sementara anda mendedikasikan diri anda kepada masalah yang kurang mekanikal dan lebih menarik.

Crontab Linux
artikel berkaitan:
Crontab Linux: Pengenalan kepada Penjadualan Tugas