Centos visar CPU-belastning från kommandoraden. Filer och kataloger. Databasinstallation

Systemd – system- och servicehanterare i operativsystemet Linux-system. När de utvecklade det försökte de designa det för att vara bakåtkompatibelt med SysV init-skript och tillhandahålla användbara funktioner, Till exempel parallell lansering systemtjänster vid uppstart, aktivering på begäran av demoner, stöd för ögonblicksbilder av systemtillstånd och beroendebaserad tjänstehanteringslogik. I CentOS 7 ersätter systemd Upstart som standard init-system.

I den här artikeln kommer vi att titta på systemd servicehanteringsprocessen för CentOS-användare 7. Denna kunskap kommer att vara användbar i andra distributioner, eftersom systemd har använts i Fedora under lång tid och är planerad i Ubuntu 14.10 och Debian 8. Huruvida detta är bra eller inte kommer att lämnas bakom kulisserna.

När du läser den här artikeln kan du prova systemd på klassisk VPS och moln-VPS från Infobox. Vi strävar efter att lägga till stöd för moderna operativsystem i tid så att du kan använda senaste tekniken för mer effektivt arbete. Själva idén att skriva den här artikeln föddes efter en annan fråga från användare om att använda tjänster i CentOS 7.

Introduktion

Systemd ger konceptet systemd-enheter. Enheter representeras av konfigurationsfiler som finns i en av katalogerna:
  • /usr/lib/systemd/system/– enheter från installerade RPM-paket.
  • /run/systemd/system/- enheter skapade under körning. Denna katalog har prioritet över katalogen med installerade enheter från paket.
  • /etc/systemd/system/- enheter skapade och hanterade systemadministratör. Denna katalog har prioritet över katalogen med enheter som skapas under körning.
Enheter innehåller information om systemtjänster, lyssningsuttag, sparade ögonblicksbilder av systemtillstånd och andra objekt relaterade till initieringssystemet.

Systemd enhetstyper:

  • .service– systemtjänst
  • .mål- systemd enhetsgrupp
  • .automount t – filsystem automonteringspunkt
  • .enhet– fil för enheten som känns igen av kärnan
  • .montera– monteringspunkt för filsystemet
  • .väg– en fil eller katalog i ett filsystem
  • .omfattning– en process skapad utifrån
  • .skiva– en grupp hierarkiskt organiserade enheter som hanterar systemprocesser
  • .snapshot– Systemd Manager sparat tillstånd
  • .uttag– kommunikationsuttag mellan processer
  • .byta– Byt enhet eller byt fil (bytesfil)
  • .timer– systemd timer

Grundläggande funktioner för systemd i CentOS 7

  • Uttagsbaserad aktivering. Vid uppstart lyssnar systemd på sockets för alla systemtjänster, stöder denna typ av aktivering och skickar sockets till dessa tjänster direkt efter att tjänsterna startar. Detta tillåter systemd att inte bara köra tjänster parallellt, utan ger också möjligheten att starta om tjänster utan att förlora några meddelanden som skickats till dem medan tjänsterna var otillgängliga. Motsvarande uttag förblir tillgängligt och alla meddelanden ställs i kö.
  • D-Bus-baserad aktivering. Systemtjänster som använder D-Bus för interprocesskommunikation kan startas på begäran när klientapplikation försöker kontakta dem.
  • Enhetsbaserad aktivering. Systemtjänster som stöder enhetsbaserad aktivering kan startas när en viss typ av hårdvara ansluts eller blir tillgänglig.
  • Vägbaserad aktivering. Systemtjänster kan stödja denna typ av aktivering om tillståndet för en mapp eller katalog ändras.
  • Ögonblicksbilder av systemtillstånd. Systemet kan spara tillståndet för alla enheter och återställa systemets tidigare tillstånd.
  • Hantera monterings- och automonteringspunkter. Systemd övervakar och hanterar monteringspunkter och automonteringspunkter.
  • Aggressiv parallellisering Systemd kör systemtjänster parallellt på grund av dess användning av socket-baserad aktivering. I kombination med tjänster som stöder on-demand-aktivering, minskar parallell aktivering avsevärt systemets starttid.
  • Transaktionslogik för enhetsaktivering. Innan enheter aktiveras eller avaktiveras, beräknar systemd deras beroenden, skapar en tillfällig transaktion och verifierar integriteten för den transaktionen. Om en transaktion inte är intakt försöker systemd automatiskt fixa den och ta bort onödiga jobb från den innan ett felmeddelande genereras.
  • Bakåtkompatibel med SysV-initiering. SystemD stöder fullt ut SysV init-skript som beskrivs i Linux Standard Base-specifikationen (LSB), vilket gör det enkelt att migrera till systemd.

Servicehantering

Tidigare versioner av CentOS använde SysV eller Upstart. Initieringsskripten fanns i katalogen /etc/rc.d/init.d/. Sådana skript skrevs vanligtvis i Bash och tillät administratören att hantera tillståndet för tjänster och demoner. I CentOS 7 har init-skript ersatts med serviceenheter.

Efter användningssätt, serviceenheter .service liknar init-skript. För att visa, starta, stoppa, starta om, aktivera eller inaktivera systemtjänster, använd kommandot systemctl. Lag service Och chkconfigär fortfarande inkluderade i systemet, men endast av kompatibilitetsskäl.


När du använder systemctl är det inte nödvändigt att ange filtillägget.

Nedan finns de grundläggande kommandona systemctl:

  • systemctl start name.service– starta tjänsten.
  • systemctl stoppa namn.tjänst- servicestopp
  • systemctl starta om namn.tjänst- starta om tjänsten
  • systemctl prova-starta om namn.tjänst- starta om tjänsten endast om den körs
  • systemctl ladda om namn.tjänst- ladda om tjänstens konfiguration
  • systemctl status namn.tjänst- kontrollera om tjänsten körs med detaljerad utdata av tjänstens status
  • systemctl är aktivt namn.tjänst- kontrollera om tjänsten körs med ett enkelt svar: aktiv eller inaktiv
  • systemctl list-enheter --typ tjänst --all– visa status för alla tjänster
  • systemctl aktivera namn.tjänst– aktiverar tjänsten (låter den starta under systemstart)
  • systemctl inaktivera name.service– avaktiverar tjänsten
  • systemctl återaktivera namn.tjänst– avaktiverar tjänsten och aktiverar den omedelbart
  • systemctl är-aktiverat namn.tjänst– kontrollerar om tjänsten är aktiverad
  • systemctl list-unit-filer --typ tjänst– visar alla tjänster och kontrollerar vilka som är aktiverade
  • systemctl mask name.service– ersätter servicefilen med en symbollänk till /dev/null, vilket gör enheten otillgänglig för systemd
  • systemctl avmaska ​​namn.tjänst– returnerar en servicefil, vilket gör enheten tillgänglig för systemd

Arbeta med Systemd-mål

Tidigare CentOS-versioner med SysV init eller Upstart inkluderade en fördefinierad uppsättning körnivåer som representerade specifika lägen för operationer, numrerade 0 till 6. I CentOS 7 ersattes konceptet körnivåer av systemmål.

systemd målfiler .målär utformade för att gruppera andra systemenheter genom en beroendekedja. Till exempel enhet graphical.target, används för att starta en grafisk session, startar GNOME Display Manager-systemtjänster ( gdm.service) och kontotjänst ( konton–daemon.service) och aktiveras multi-user.target. I sin tur multi-user.target kör andra systemtjänster som Network Manager ( NetworkManager.service) eller D-Bus ( dbus.service) och aktiverar andra målenheter grundläggande.mål.

CentOS 7 kommer med fördefinierade mål liknande standarduppsättning köra nivåer. Av kompatibilitetsskäl har de även alias för dessa mål som visas direkt i SysV-körnivåer.

  • poweroff.target (runlevel0.target)– avstängning och avstängning av systemet
  • rescue.target (runlevel1.target)– ställa in återställningsskalet
  • multi–user.target (runlevel2.target, runlevel3.target, runlevel4.target)– inrätta ett icke-grafiskt fleranvändarsystem
  • graphical.target (runlevel5.target)– inrätta ett grafiskt fleranvändarsystem
  • reboot.target (runlevel6.target)– stäng av och starta om systemet
Kommandona runlevel och telinit är fortfarande tillgängliga, men behålls av kompatibilitetsskäl. Det rekommenderas att använda systemctl för att ändra eller konfigurera systemmål.

För att avgöra vilken målenhet som är standard är följande kommando användbart: systemctl get–standard.

För att se alla laddade målenheter, använd kommandot systemctl list-enheter --typ mål, och för att se alla målenheter i allmänhet med kommandot: systemctl list-enheter --typ mål --all.

För att ändra standardmålet, använd kommandot systemctl set-default name.target.

Så här ändrar du det aktuella målet: systemctl isolera namn.mål. Kommandot startar målenheten och alla dess beroenden och stoppar alla andra omedelbart.

I CentOS 7 ersätter systemctl ett betydande antal strömhanteringskommandon. De tidigare kommandona behålls för kompatibilitet, men det rekommenderas att använda systemctl:
systemctl stoppa– stoppar systemet
systemctl avstängning– stänger av systemet
systemctl omstart– startar om systemet

Hantera systemd på en fjärrdator

Systemd låter dig hantera en fjärrdator via SSH. För att styra använd kommandot:
systemctl --host användarnamn@värdnamn kommando, där användarnamn är användarnamnet, värdnamn är namnet på den värd med vilken fjärrkontroll, och kommando är systemd-kommandot som ska köras.

Typisk systemd .service

Det här avsnittet hjälper dig om du snabbt behöver stödja servicehantering från systemd. detaljerad information Alla parametrar i .service-filen beskrivs i motsvarande avsnitt i systemdokumentationen.

Description=Daemon för att upptäcka kraschar appar After=syslog.target ExecStart=/usr/sbin/abrtd Type=forking WantedBy=multi-user.target
Låt oss titta på avsnittet . Det innehåller allmän information om tjänsten. Denna sektion finns inte bara i serviceenheter utan även i andra enheter (till exempel vid hantering av enheter, monteringspunkter etc.). I vårt exempel ger vi en beskrivning av tjänsten och indikerar att demonen ska startas efter Syslog.

I nästa avsnitt innehåller direkt information om vår tjänst. Använd parameter ExecStart pekar på körbar fil vår tjänst. I Typ vi anger hur tjänsten meddelar systemd när uppstarten är klar.

Sista avsnittet innehåller information om i vilket mål tjänsten ska starta. I I detta fall vi säger att tjänsten ska startas när målet är aktiverat multi-user.target.

Detta är den minsta fungerande systemd-tjänstfilen. När du har skrivit din, kopiera den till /etc/systemd/system/service_name.service för testning. Kör kommandona systemctl daemon-reload. Systemd kommer att känna till tjänsten och du kommer att kunna starta den.

ytterligare information

En utmärkt handledning om systemd från RedHat, som ligger till grund för denna artikel.
Dokumentation för att skriva din egen systemd serviceenhet.
"Systemd för administratörer" från utvecklaren av systemd på ryska.

Slutsats

I den här artikeln lärde vi oss hur man hanterar CentOS 7-tjänster. Naturligtvis är detta inte den enda funktionen av systemd och dess andra aspekter kommer att diskuteras i framtiden. Själva operativsystemet har varit tillgängligt på klassisk VPS och moln-VPS från Infobox nästan sedan det släpptes. Testa systemd nu. Denna kunskap kommer att vara användbar i samband med övergången av många distributioner till systemd.

Hittar du ett fel i artikeln rättar författaren gärna till det. Skriv gärna i ett PM eller mail om det.
Om du inte kan lämna kommentarer på Habré kan du skriva dem på bloggen

Jag kommer att prata om de initiala inställningarna för CentOS-systemet, som ökar säkerheten och enklare att arbeta med servern. Jag noterar att i den 7:e versionen av systemet har det skett några ändringar jämfört med tidigare versioner.

Återigen, observera att jag gör dessa inställningar på virtuell server. Om du har en hårdvaruserver, så rekommenderas det att utföra några fler inställningar som jag inte nämner här. Dessa inkluderar till exempel att ställa in och kontrollera feltolerans när en av diskarna går sönder. Inaktivera vanlig arraykontroll av mdadm, etc.

Initial installation av CentOS 7

Så vi har: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Tors 29 Jan 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Först och främst, låt oss uppdatera grundläggande system:

# yum uppdatering

För att underlätta administrationen installerar jag alltid Midnight Commander, eller bara mc:

# yum installera mc

Och direkt för det sätter jag på syntaxmarkering för alla filer som inte är explicit markerade i filen /usr/share/mc/syntax/Syntax syntax för sh och bash skript. Denna universella syntax är bra för konfigurationsfiler som du oftast behöver arbeta med på servern. Skriver över filen okänd.syntax. Detta är mönstret som kommer att tillämpas på .conf- och .cf-filer, eftersom det inte finns någon explicit syntax kopplad till dem.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

# ifconfig

Och du kommer att se svaret:

Bash: ifconfig: kommando hittades inte

Förbi minst När jag såg detta första gången blev jag ganska förvånad. Jag trodde att jag hade gjort ett misstag när jag skrev kommandot, jag dubbelkollade allt flera gånger, men utan resultat. Det visade sig att jag behövde installera ett paket separat för att köra ifconfig och andra nätverksverktyg.

Istället för ifconfig i CentOS 7 finns det nu ett verktyg ip. Jag förstår inte varför det finns ett behov av att skapa separata program för att hantera nätverksinställningar om ifconfig ändå gör ett bra jobb. Dessutom har jag alltid gillat att i olika Linux-distributioner är allt ungefär likadant. Med hjälp av ifconfig kan du konfigurera nätverket inte bara i Linux, utan även i freebsd. Det är bekvämt. Och när varje distribution har sitt eget verktyg är detta obekvämt. Så jag föreslår att du installerar den vanliga ifconfig.

Vi gör det:

# yum installera net-tools

Nu, för att nslookup eller till exempel värdkommandon ska fungera måste vi installera bind-utils-paketet. Om detta inte görs, använd kommandot:

#nslookup

Utgången blir:

Bash: nslookup: kommandot hittades inte

Så låt oss installera bind-utils:

# yum installera bind-utils

Inaktivera SELinux. Dess användning och konfiguration är en separat fråga. Jag kommer inte att göra det här nu. Så låt oss stänga av det:

# mcedit /etc/sysconfig/selinux

ändra värdet
SELINUX=inaktiverad
För att ändringarna ska träda i kraft, starta om:

# starta om

Du kan inaktivera SElinux utan att starta om:

# setenforce 0

Ange nätverksparametrar

Använd inte båda tidssynkroniseringsdemonerna - chrony och ntp - samtidigt. Välj en. Personligen ser jag ingen skillnad på dem, jag installerar oftast den vanliga ntp.

Lägger till arkiv

För att installera olika program behöver du. De mest populära är EPEL och rpmforge, så låt oss lägga till dem. Först installerar vi EPEL. Allt är enkelt med det, det läggs till från standardförvaret:

# yum installera epel-release

Installera rpmforge:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1 .el7.rf.x86_64.rpm

# mums installera http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

Konfigurera historiklagring i bash_history

Det kommer att vara användbart att göra några ändringar i standardmekanismen för att spara kommandohistorik. Det hjälper ofta när du behöver komma ihåg ett av de tidigare inmatade kommandona. Standardinställningarna har vissa begränsningar som är obekväma. Här är deras lista:

  1. Som standard sparas endast de senaste 1000 kommandona. Om det finns fler av dem kommer de äldre att raderas och ersättas med nya.
  2. Det finns inga exekveringsdatum för kommandona, bara en lista över dem i exekveringsordning.
  3. Kommandolistans fil uppdateras efter att sessionen avslutas. Under parallella sessioner kan vissa kommandon gå förlorade.
  4. Absolut alla kommandon sparas, även om det inte är någon idé att lagra några.

Listan över nyligen utförda kommandon lagras i användarens hemkatalog i filen .bash_history(prick i början). Du kan öppna den med valfri redigerare och visa den. För att visa listan mer bekvämt kan du ange kommandot i konsolen:

#historia

och se en numrerad lista. Du kan snabbt hitta ett specifikt kommando med enbart filtrering de erforderliga linjerna, till exempel så här:

# historia | grep mums

På så sätt kommer vi att se alla alternativ för att köra kommandot yum, som lagras i historiken. Låt oss rätta till de angivna bristerna i standardinställningarna för lagring av kommandohistorik i CentOS 7. För att göra detta måste du redigera filen .bashrc, som finns i samma katalog som historikfilen. Lägg till följande rader:

Exportera HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="history -a" export HISTIGNORE="ls:ll:history:w:htop"

Det första alternativet ökar filstorleken till 10 000 rader. Du kan göra fler, även om denna storlek vanligtvis räcker. Den andra parametern anger att datum och tid då kommandot utfördes ska lagras. Den tredje raden tvingar omedelbart efter att ha utfört kommandot att spara det i historiken. På sista raden skapar vi en lista med undantag för de kommandon som inte behöver registreras i historiken. Jag gav ett exempel på mig själv enkel lista. Du kan lägga till det efter eget gottfinnande.

För att tillämpa ändringarna måste du logga ut och ansluta igen eller köra kommandot:

# källa ~/.bashrc

Automatisk systemuppdatering

För att upprätthålla serversäkerheten på rätt nivå är det nödvändigt att åtminstone uppdatera den i tid - som själva kärnan med systemverktyg, såväl som andra paket. Du kan göra detta manuellt, men för effektivare arbete är det bättre att automatisera rutinmässiga aktiviteter. Det är inte nödvändigt att installera uppdateringar automatiskt, men kolla åtminstone efter dem. Jag brukar följa denna strategi.

För automatisk kontroll verktyget hjälper oss att uppdatera yum-cron. Den installeras traditionellt via yum från standardförvaret.

# yum installera yum-cron

Efter installationen skapas den automatisk uppgift att köra verktyget i /etc/cron.daily Och /etc/cron.hourly. Som standard laddar verktyget ner de hittade uppdateringarna, men tillämpar dem inte. Istället administratören på lokal Brevlåda meddelande om uppdateringar skickas till root. Sedan går du i manuellt läge och bestämmer om du vill installera uppdateringar eller inte vid en tidpunkt som passar dig. Jag tycker att detta driftsätt är det mest bekväma, så jag ändrar inte dessa inställningar.

Yum-cron-konfigurationsfilerna finns på /etc/yum/yum-cron.conf Och yum-cron-hourly.conf. De är väl kommenterade, så de behöver inga detaljerade förklaringar. Jag uppmärksammar dig på avsnittet , där du kan ange parametrar för att skicka meddelanden. Som standard skickas e-post via lokal värd. Du kan ändra inställningarna här och skicka meddelanden via en tredje part Mejl server. Men istället föredrar jag personligen att globalt konfigurera hela servern för att vidarebefordra lokal rotmail till en extern postlåda genom auktorisering på en annan smtp-server.

Inaktivera meddelandeflöd i /var/log/messages

I standardinstallationen av CentOS 7, hela din systemlogg /var/log/meddelanden Efter en tid kommer servern att vara igensatt med följande poster.

16 okt 14:01:01 xs-filer systemd: Skapade segment user-0.slice. 16 okt 14:01:01 xs-filer systemd: Startar user-0.slice. 16 okt 14:01:01 xs-files systemd: Startade session 14440 av användarrot. 16 okt 14:01:01 xs-files systemd: Startsession 14440 av användarrot. 16 okt 14:01:01 xs-filer systemd: Borttagen slice user-0.slice. 16 okt 14:01:01 xs-filer systemd: Stoppar user-0.slice. 16 okt 15:01:01 xs-filer systemd: Skapade segment user-0.slice. 16 okt 15:01:01 xs-filer systemd: Startar user-0.slice. 16 okt 15:01:01 xs-files systemd: Startade session 14441 av användarroten. 16 okt 15:01:01 xs-files systemd: Startsession 14441 av användarroten. 16 okt 15:01:01 xs-files systemd: Startade session 14442 av användarroten. 16 okt 15:01:01 xs-files systemd: Startsession 14442 för användarrot. 16 okt 15:01:01 xs-filer systemd: Borttagen slice user-0.slice. 16 okt 15:01:01 xs-filer systemd: Stoppar user-0.slice. 16 okt 16:01:01 xs-filer systemd: Skapade segment user-0.slice. 16 okt 16:01:01 xs-filer systemd: Startar user-0.slice. 16 okt 16:01:01 xs-files systemd: Startade session 14443 av användarrot. 16 okt 16:01:01 xs-files systemd: Startsession 14443 för användarroten. 16 okt 16:01:01 xs-filer systemd: Borttagen slice user-0.slice.

De har ingen praktisk användning, så låt oss stänga av dem. För att göra detta kommer vi att skapa en separat regel för rsyslog, där vi kommer att lista alla meddelandemallar som vi kommer att klippa. Låt oss placera denna regel i en separat fil /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf om $programname == "systemd" och ($msg innehåller "Starting Session" eller $msg innehåller "Started Session" eller $msg innehåller "Created" slice" eller $msg innehåller "Starting user-" eller $msg innehåller "Starting User Slice of" eller $msg innehåller "Removed session" eller $msg innehåller "Removed slice User Slice of" eller $msg innehåller "Stopping User Slice of" ) sluta sedan

Spara filen och starta om rsyslog för att tillämpa inställningarna.

# systemctl starta om rsyslog

Det är nödvändigt att förstå att i det här fallet inaktiverar vi översvämning i loggfilen endast för lokal server. Om du lagrar loggar på, då denna regel du måste konfigurera den på den.

Installerar iftop, atop, htop, lsof på CentOS 7

Och slutligen, låt oss lägga till några användbara verktyg, vilket kan vara användbart under serverdrift.

iftop visar laddningen av nätverksgränssnittet i realtid, kan startas med olika nycklar, jag kommer inte att uppehålla mig i detta i detalj, det finns information om detta ämne på Internet. Vi lägger:

# yum installera iftop

Och två intressanta uppgiftshanterare, jag använder oftast htop, men ibland kommer atop väl till pass. Låt oss installera båda, se själv, ta reda på vad du gillar bäst, vad som passar dig:

# yum -y installera htop # yum -y installera ovanpå

Så här ser htop ut:

För att visa information om vilka filer som används av vilka processer rekommenderar jag att du installerar verktyget lsof. Det kommer med största sannolikhet att komma till nytta förr eller senare när du diagnostiserar servern.

# yum installera wget bzip2 traceroute gdisk

Det var allt för mig. Den grundläggande installationen av CentOS 7 är klar, du kan börja installera och konfigurera huvudfunktionaliteten.

Konfigurera systemmail

För att slutföra installationen CentOS-servrar 7 kommer vi att se till att e-post adresserad till den lokala roten skickas via en extern e-postserver till den valda brevlådan. Om detta inte görs kommer det att kompileras lokalt till en fil /var/spool/mail/root. Och det kan finnas en viktig användbar information. Låt oss konfigurera den för att skickas till systemadministratörens brevlåda.

Jag pratade om detta i detalj i en separat artikel -. Här är bara kommandona och snabbinställningen. Vi lägger nödvändiga paket:

# mums installera mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

Låt oss rita något liknande den här konfigurationen för postfix.

Cat /etc/postfix/main.cf ## DEFAULT CONFIG BEGIN ##################### queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = alla unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/alias alias_database = hash:/etcalia_demandle debuggercom PATH =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = ingen manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## DEFAULT CONFIG END ###################### Servernamn som utmatas av kommandot hostname myhostname = centos7- test xs.local # Här behöver du logiskt bara lämna domänen, men i det här fallet är det bättre att lämna serverns fullständiga namn så att avsändarfältet # inkluderar serverns fullständiga namn. mer bekvämt att tolka tjänstmeddelanden mydomain = centos7-test.xs.local mydestination = $myhostname myorigin = $mydomain # Serveradress genom vilken vi skickar e-post relayhost = mailsrv.mymail.ru:25 smtp_use_tls = ja smtp_sasl_auth_auth_enable =_yes_smtpword =_yes :/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous tls_security_level = maj

Vi skapar en fil med information om användarnamn och lösenord för auktorisering.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-postskyddad]:Lösenord

Skapa en db-fil.

# postmap /etc/postfix/sasl_passwd

Nu kan du starta om postfix och kontrollera om det fungerar.

# systemctl starta om postfix

Till standardaliaset för root in /etc/aliaser, Lägg till extern adress, där e-post adresserad till root kommer att dupliceras. För att göra detta, redigera den angivna filen, ändra sista raden.

#root: marc

Rot: rot, [e-postskyddad]

Uppdatering av certifikatdatabasen:

#newaliases

Låt oss skicka ett brev via konsolen till den lokala roten:

# df -h | mail -s "Diskanvändning" rot

Brevet ska gå till en extern brevlåda. Detta slutför den lokala e-postkonfigurationen. Nu kommer alla brev adresserade till den lokala roten, till exempel rapporter från cron, att dupliceras till en extern brevlåda och skickas via en vanlig mailserver. Så breven kommer att levereras normalt, utan att hamna i spam (även om det inte nödvändigtvis finns, det finns också heuristiska filter).

Slutsats

Vi har gått igenom några inledande steg för att konfigurera en CentOS 7-server, vilket är vad jag brukar göra när jag förbereder en server. Jag låtsas inte vara den absoluta sanningen; jag kanske missar något eller gör något som inte är helt korrekt. Jag kommer gärna ha rimliga och meningsfulla kommentarer och förslag.

Användbart efter grund inställningar anslut omedelbart servern till övervakningssystemet. Eller ställ in det om du inte redan har det. Jag har en detaljerad serie artiklar om att ställa in övervakning:

  1. , eller bara koppla centos till övervakning genom att installera en agent på den.
  2. I ett separat avsnitt av författaren

Systemet Linuxär ett multi-tasking, multi-användar operativsystem, vilket innebär att ett betydande antal människor kan köra många saker samtidigt olika applikationer samtidigt på samma dator. Detta system Linux skiljer sig från MS-DOS-system t.ex. där bara en person kan arbeta på datorn samtidigt.

alternativ Linux-kommandon börjar vanligtvis med symbolen - , varefter du kan ange flera alternativ samtidigt. Till exempel, istället för kommandot ls -l -F, kan du ange kommandot ls -lF.

Som kommandoargument Linux kan vara listor med fil- eller katalognamn. Till exempel är argumenten för kommandot cp namnen på filerna som kommer att kopieras. Listan över kopierade filer stängs av namnet på filen (eller katalogen) dit filerna kommer att kopieras. När du kopierar mer än en fil måste katalognamnet stå i slutet.

Skapa ett användarnamn

Innan du börjar arbeta på ett nyinstallerat system Linux, måste du skapa ett namn åt dig själv för ditt dagliga arbete. Det är inte tillrådligt att använda för detta rotnamn, som är reserverad för att utföra speciella kommandon och för arbete med att underhålla systemets funktionalitet.

För att skapa ett användarnamn måste du logga in som root-användare och använd kommandot useradd (eller adduser).

Logga in

Vanligtvis när du loggar in kommer du att se följande prompt på skärmen:

Efter att ha angett användarnamnet och tryckt på knappen Stiga på Du kommer att bli ombedd att ange ett lösenord:

localhost login: oleg Lösenord:

Efter detta måste du ange ett lösenord (tecken du skriver syns inte på skärmen). Om du anger ett felaktigt lösenord visas följande meddelande på skärmen:

localhost login: oleg Lösenord: Inloggning felaktig inloggning:

Efter att ha angett rätt användarnamn och lösenord loggas du in i systemet.

Virtuell konsol

Systemkonsolen är en bildskärm och ett tangentbord som är direkt anslutna till datorn. Systemet Linux, liknande andra versioner av systemet UNIX, ger tillgång till virtuella konsoler, från vilka du samtidigt kan utföra flera sessioner för att arbeta i systemet.

För att bekanta dig med att arbeta i virtuella konsoler bör du logga in och trycka på tangentkombinationen Alt-F2. Prompten login: kommer att visas igen (detta är den andra virtuella konsolen). För att återgå till den första virtuella konsolen måste du trycka på tangentkombinationen Alt-F1 (du kommer tillbaka till en redan påbörjad arbetssession).

Precis nu installerat system L inux ger som regel åtkomst till de första sex virtuella konsolerna, som kan nås med Alt-Fx-tangentkombinationerna. Alltså redan i det inledande skedet får användaren kraftfullt verktyg, så att du kan arbeta i flera sessioner samtidigt.

Skal och kommandon

Mest kommunikation med systemet Linux händer igenom kommandoskal (skal). Kommandoskalär ett program som tar kommandon in från tangentbordet och omvandlar dem till instruktioner till operativsystemet.

Efter inloggning startar operativsystemet kommandoskal, varefter du kan ange kommandon. Kommando är det första ordet på kommandoraden. Allt annat på kommandoraden tas som argument för detta kommando. Som ett exempel, låt oss skapa (mkdir) kommandokatalogen:

$ mkdir kommandon

Logga ut

För att logga ut från systemet, efter skalprompten, skriv in kommandot:

ändra lösenord

För att ändra lösenordet måste du ange kommandot passwd. Kommandot kommer att uppmana dig att gå in Gammalt lösenord, och sedan - en ny. Kommandot ber dig sedan att gå in nytt lösenord igen för att bekräfta:

Filer och kataloger

I operativsystemet Linux begreppet fil används ( fil). En fil är en del information som har sitt eget namn ( filnamn). Du bör vara medveten om att information endast sparas på disk i form av separata filer.

Namn på vanliga filer i Linux kan vara upp till 255 tecken långa och bestå av alla tecken förutom kodtecknet och tecknet / (snedstreck). Det finns dock fortfarande ett antal symboler som har i skalet skal särskild betydelse och som därför inte rekommenderas att ingå i namn. Det här är följande karaktärer:

! @ # $ & ~ % * () { } " " \ : ; >

Begreppet en fil är nära besläktat med begreppet en katalog ( katalog). En katalog är en samling filer. Användare Windows De kallar katalogen för en mapp, analogt med en mapp som innehåller många olika ark. Men denna analogi är felaktig, eftersom katalogen innehåller inte själva filerna, utan länkar till filer, såväl som till andra kataloger. Kataloger får namn som de kan identifieras med. Dessutom bildar katalogerna en trädstruktur; med andra ord, det finns en enda rotkatalog som innehåller alla andra kataloger i den.

Vid åtkomst till en fil anges en sökväg som kan bestå av ett katalognamn (namn på kapslade kataloger), följt av filnamnet. Namnen är separerade från varandra med ett snedstreck (/). Till exempel:

I exemplet ovan kan du se att namnen är åtskilda av tecknet /. Det är av denna anledning som de inte kan innehålla honom.

Katalogträd

På de flesta system Linux Använder en standardfillayout så att platsen för viktiga systemfiler och program är lätt att hitta. Katalogerna bildar en trädstruktur som börjar med katalogen /. Denna katalog kallas även rotkatalogen. Direkt intill katalogen / finns viktiga underkataloger /bin, /etc, /dev, /usr och andra.

Aktuell katalog

När som helst hänvisar det utfärdade kommandot till den aktuella katalogen ( aktuell katalog). När du loggar in ställs den aktuella katalogen in på din hemkatalog (i vårt fall /home/oleg). När du refererar till en fil kan du ange antingen den fullständiga sökvägen till denna fil eller endast sökvägen från den aktuella katalogen.

Det föregående exemplet, när det till exempel finns i katalogen /home/oleg/docs, kommer att se ut så här:

$ mindre mokshadharma/index.xml

Om sökvägen till en fil (till exempel mokshadharma/index.xml) börjar med ett annat tecken än / , betyder det att filen nås i förhållande till den aktuella katalogen. Denna metod för hantering kallas på ett relativt sätt (relativ väg).

Om filnamnet börjar med / tolkar systemet detta som en fullständig sökväg, det vill säga sökvägen som leder till filen, med start från rotkatalogen / (/home/oleg/docs/mokshadharma/index.xml) . Detta kallas också på ett absolut sätt (absolut väg).

Åtkomst till hemkatalogen

I kommandoskalet våldsamt slag, ingår i nästan alla nyinstallerade system Linux, kan hemkatalogen betecknas med ~-symbolen. Till exempel kommandot:

$ mindre ~/docs/mokshadharma/index.xml

motsvarar kommandot:

$ mindre /home/oleg/docs/mokshadharma/index.xml

Navigera i katalogträdet

Kommandot som används för att flytta genom ett katalogträd kallas cd - förkortning av ändra katalog(byt katalog). Som ett exempel på att använda kommandot cd, låt oss gå till katalogen /home/oleg/docs/mokshadharma/:

$ cd ~/docs/mokshadharma

Nu kan du komma åt filen från den aktuella katalogen med följande kommando:

$ mindre index.xml

För att flytta till närmaste katalog på högre nivå finns ett kommando:

För att byta till hemkatalogen kan du utfärda cd-kommandot utan argument:

Visa kataloginnehåll

Kommandot ls (förkortning av lista) visar en lista med filer och kataloger (alternativet -F låter dig få mer fullständig information):

$ ls -F ~/docs/mokshadharma ch/ ch01.html ch02.html ch03.html cron.sh* docbook.xsl index.html index.xml pr01.html pt01.html style/

I listan ser vi att symbolen / läggs till i slutet av namnet på underkatalogerna och i slutet av namnet på den körbara filen ( körbar) tilldelas symbolen *.

Skapa nya kataloger

För att skapa en ny katalog, använd kommandot mkdir (förkortning av göra katalog). Låt oss till exempel skapa en ny katalog och ange den:

$ mkdir exempel $ cd exempel

Skapar nya filer

För att skapa filer, använd touch- och kattkommandona

Tryckkommandot skapar en tom fil:

$touch filnamn

För att skapa en fil tar kommandot cat, som är utformat för att omdirigera utdata, standardinmatningen (tangentbordet) som sin indata och skickar kommandots utdata till en ny fil:

$ cat > new_file

När den önskade texten har skrivits in, tryck på kombinationen Ange nycklar och Ctrl-D eller Enter och Ctrl-C , och allt som skrivs in kommer att skrivas till new_file . Naturligtvis skapas oftast korta textfiler på detta sätt.

Ändra ägare till en fil eller grupp av en fil

Endast superanvändaren kan ändra ägaren av gruppen själv eller superanvändaren. För att ha rätt att ändra gruppen måste ägaren dessutom vara medlem i gruppen som han vill ge rättigheter till denna fil.

För att förstöra filer, använd kommandot rm (förkortning av avlägsna):

$rmindex.xml$

Som standard är kommandot rm inte alltid konfigurerat för att utfärda varningar innan en fil förstörs.

Används för att förstöra kataloger rmdir kommando, som förstör endast den tomma katalogen.

$ cd .. $ rmdir exempel $ ls -F $

För att förstöra kataloger som innehåller filer och underkataloger, använd kommandot rm -rf, som bör användas med extrem försiktighet, eftersom innehållet förstörs utan förvarning.

Visa filinnehåll

För att se innehållet i filer, använd kommandona more och cat. mer kommando visar innehållet i filen i delar (en skärm i taget) och kommandot katt matar ut hela filen på en gång. En förbättrad version av mer kallas mindre.

För att se innehållet som visas med kommandot less, använd tangenterna B och Mellanslag (du kan också använda Page Up och Page Down).

Skärmdokumentation

Nästan alla system i familjen UNIX inklusive system Linux, ha dokumentation på skärmen ( man-sidor). Dess texter innehåller dokumentation om systemkommandon, resurser, konfigurationsfiler etc. och kan visas på skärmen under drift.

För att komma åt dokumentationen på skärmen, använd kommandot man (förkortning av manuell). Till exempel, för att se alternativen för kommandot ls, skulle du skriva kommandot.

CentOS är en gratis distribution baserad på källkod röd hatt Enterprise Linux, i själva verket skapas det från dessa källor med praktiskt taget inga förändringar, utvecklarna klippte bara bort alla Red Hat-varumärken. Men till skillnad från Red Hat är CentOS helt gratis och får regelbundna uppdateringar, en liten stund efter att de släppts för Red Hat eftersom de också är byggda från källkod.

Mycket ofta används CentOS som operativsystem för servrar. I en av de tidigare artiklarna tittade vi på hur det går till. Idag ska vi titta på att sätta upp en CentOS 7-server efter installationen. Vi går igenom alla grundläggande inställningar du behöver ändra för att göra din server redo att användas.

1. Ställa in en statisk IP-adress

Det första du behöver göra är att konfigurera ditt nätverk. På persondatorer används att erhålla en IP-adress via DHCP, och datorn kommer att ha en annan adress varje gång den startar, servern måste alltid köra på samma adress, så vi tilldelar den en statisk IP. Du måste också konfigurera DNS och standardgateway. Men installera först verktyget net-tools:

yum installera net-tools

Låt oss först titta på de tillgängliga nätverksgränssnitt och aktuell IP-adress:

Nu kan du fortsätta med att konfigurera gränssnittet genom filen /etc/sysconfig/network-scripts/ifcfg-enp0s3, till exempel med hjälp av vi-redigeraren:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

IPADDR = din_ip
GATEWAY = gateway_for_network_access
DNS1 = IP_adress_DNS1
DNS2 = IP_adress_DNS2

Efter att ha gjort ändringar kommer den här filen att se ut så här:

Sedan återstår bara att starta om nätverket för att tillämpa de nya inställningarna:

omstart av servicenätverket

Sedan kan du vid behov ändra IP-adressen på samma sätt.

2. Datornamn

Nästa sak vi behöver göra är att ändra datornamnet. Det aktuella datornamnet lagras i variabeln HOSTNAME:

För att ändra det måste du redigera filen /etc/hostname och ersätta det gamla namnet där med ett nytt.

vi /etc/hostname

Du kan också använda kommandot hostnamectl:

hostnameectl set-hostname "värdnamn"

3. CentOS-uppdatering

Efter installationen är det vanligt att uppdatera programvaraända fram till ny version för att installera alla säkerhetsuppdateringar. För att uppdatera listan över paket i förvaret och installera nya versioner, kör följande kommando:

yum uppdatering && yum uppgradering

4. Installera en webbläsare

I många fall måste du använda CentOS från kommandoraden utan GUI, så du kan behöva en webbläsare för att hitta något på Internet eller kontrollera webbplatsernas funktionalitet från kommandoraden. För att installera webbläsarlänkarna, skriv:

yum installera länkar

Du kan hitta andra konsolwebbläsare för Linux, som Lynx eller Elinks.

5. Ställa in tidszonen

Att ställa in tidszonen korrekt är mycket viktigt för servern. Detta kommer att rensa upp loggförvirringen och låta dina applikationer visas rätt datum och tid. Verktyget timedatectl används för konfiguration.

Få först en lista över tidszoner:

timedatectl list-tidszoner

Installera sedan den du behöver, till exempel Europa/Kiev:

timedatectl ställ in tidszon Europa/Kiev

Kontrollera sedan:

7. Ställa in språk

Lokalen bestämmer språket och kodningen som kommer att användas på ditt system, till exempel för att aktivera det ryska språket, ställ in värdet till ru_RU.UTF-8

localectl set-locale LANG=ru_RU.UTF-8

Låt oss sedan se vad som hände:

Ställ sedan in tangentbordslayouten:

localectl set-keymap oss

8. Inaktivera SELinux

SELinux policyuppsättning är utformad för att kontrollera åtkomst till filer på ett Linux-system, men om du inte tänker använda dem kan du inaktivera den här funktionen. För att göra detta, kör:

sed -i "s/(^SELINUX=).*/SELINUX=disabled/" /etc/selinux/config

Starta sedan om datorn och kontrollera om funktionen verkligen var inaktiverad:

9. Skapa en användare

Det är osäkert att använda systemet som en superanvändare, och det är ännu mer osäkert att lämna fri tillgång till root-kontot via ssh. Skapa först vanlig användare och ställ in ett lösenord för det:

useradd användarnamn
# passwd lösenord

Lägg sedan till användaren i hjulgruppen för att låta användaren köra som administratör:

usermod -G hjul användarnamn

Nu återstår bara att korrigera sudo-inställningarna för att göra detta, lägg till följande rad om den inte redan finns där:

%hjul ALLA = (ALLA) ALLA

10. Aktivera tredjepartsförråd

Lägg till tredje parts arkiv till en produktionsserver - det är inte särskilt bra bra idé, och i vissa fall kan leda till dåliga konsekvenser. Men ibland kan du behöva program som inte finns i de officiella arkiven. Låt oss därför titta på hur man lägger till flera förråd.

För att lägga till Enterprise Linux Repository (EPEL) kör:

mums installera epel-release
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

10. SSH-inställning

Oftast måste vi arbeta med servrar inte direkt, utan över nätverket, via SSH. Vanligtvis är SSH-tjänsten redan installerad och aktiverad, men det finns några inställningar du måste göra för att den ska fungera korrekt. Först måste du konfigurera användningen av endast ett säkert protokoll; för att göra detta, öppna filen /etc/ssh/ssh_config och ta bort raden Protocol 2.1. Och lägg istället till:

Du måste också inaktivera inloggning som superanvändare:

PermitRootLogin nr

11. Installera Apache Web Server

Om du planerar att använda maskinen som en webbserver behöver du Apache. Med den kan du vara värd för webbplatser, multimediainnehåll, klientprogram och mycket mer. Att installera:

yum installera httpd

När installationen är klar måste du aktivera HTTP i din brandvägg innan du kan fortsätta:

brandvägg-cmd --add-service=http
# brandvägg-cmd -permanent -add-port=3221/tcp
# firewall-cmd --ladda om

Nu återstår bara att lägga till Apache till start:

systemctl starta httpd.service
# systemctl aktivera httpd.service

12. Installera PHP

PHP är en modern webbapplikation och ett skriptspråk. Det används ofta som ett allmänt programmeringsspråk. Att installera:

Efter installationen måste du starta om Apache:

echo -e"" > /var/www/html/phpinfo.php

Öppna sedan den skapade filen i din webbläsare:

länkar http://127.0.0.1/phpinfo.php

13. Databasinstallation

MariaDB är en databas baserad på MySQL-källkod. Red Hat-baserade Linux-distributioner använder MariaDB istället för MySQL. Databaser är en oumbärlig sak på en server, så att installera CentOS efter installationen bör inkludera installation. För MariaDB installationer ringa:

yum installera mariadb-server mariadb

Kör sedan och lägg till för start:

systemctl starta mariadb.service
# systemctl aktivera mariadb.service

Och tillåt tjänsten i brandväggen:

brandvägg-cmd --add-service=mysql

Allt som återstår är att köra installationsskriptet:

/usr/bin/mysql_secure_installation

14. Installera GCC

GCC står för GNU Compiler Collection, en uppsättning kompilatorer som anses vara standarden för att bygga program på Linux. Men det kommer inte med CentOS som standard, så för att installera, skriv:

Sedan kan du titta på GCC-versionen:

15. Installera Java

Java är ett allmänt målorienterat programmeringsspråk. Det är inte installerat som standard, så att konfigurera CentOS 7 efter installationen kan inkludera installation. För att göra detta, kör:

yum installera java

Kontrollera sedan versionen:

Slutsatser

I den här artikeln tittade vi på hur man konfigurerar en CentOS 7-server efter installationen. Som du kan se finns det många grundläggande steg som det är tillrådligt att göra innan du använder servern i produktionen. Om du har några frågor, fråga i kommentarerna!

Dagens artikel är helt tillägnad nybörjare som precis tar sina första steg för att lära känna operativsystemet CentOS. I den här artikeln har vi samlat de 20 bästa kommandona som kommer att vara användbara i det dagliga arbetet, serverhantering och grundläggande felsökning.

Lag

  • Att börja filredigering tryck på O
  • Spara tryck Esc och:x!
  • För att kopiera filer finns kommandot cp (copy). Som ett exempel cp /etc/asterisk/extensions_custom.conf /home/admin/ . Således kommer filtilläggen_custom.conf att läggas till i katalogen /home/admin.
  • För att ändra ägaren till en fil, använd chown (byt ägare). För att ändra ägaren till alla filer i katalogen /etc/asterisk till användaren asterisk ge kommandot chown –R asterisk:asterisk /etc/asterisk
  • Att ge vissa rättigheter det finns ett chmod-kommando för filen. Till exempel, låt oss ge maximala rättigheter till filen /etc/asterisk/extensions_custom.conf med kommandot chmod 777 /etc/asterisk/extensions_custom.conf .
  • För att skapa en "symbolisk" länk till en fil, använd kommandot ln. Till exempel, ln –s /storage/test /etc/test . Viktig!/etc/test-filen får inte skapas innan kommandot körs.
  • För att starta om de nödvändiga tjänsterna används katalogen /etc/init.d/. Till exempel kommer /etc/init.d/httpd restart-kommandot att starta om WEB-servern.
  • För att stänga av en viss process kan du använda dess PID. För att hitta den, utfärda kommandot ps axu | grep -i asterisk | grep -v grep . Process-PID kommer att finnas i den andra kolumnen.
  • Nu när du känner till processens PID, utfärda kommandot kill -0 #process_number. Som ett exempel, döda -9 1738.
  • För att ta reda på vilken process som äter upp CPU-resurser mest, använd toppkommandot.
  • Om du behöver anpassa DNS-servrar, gör sedan ändringar i filen /etc/resolv.conf. Öppna till exempel filen med kommandot vim /etc/resolv.conf och lägg till DNS-servern till den:
    • namnserver 8.8.8.8
  • För att se hur operativsystemet laddas RAM-minne på CentOS OS, använd kommandot free -m. Utdata kommer att visas i megabyte, vilket anger det totala minnet, använt och ledigt utrymme.
  • För att kontrollera minnesanvändning på hårddiskar ge kommandot df -h . Du kommer också att se den totala volymen, upptaget och ledigt utrymme.
  • För att se storleken på en specifik katalog, använd kommandot du. Till exempel, för att bestämma storleken på katalogen /etc/asterisk/, använd du -sh /etc/asterisk/ .
  • Om du behöver veta versionen installerat paket, använd kommandot rpm. Till exempel versionskontroller mums ge kommandot rpm -qa | grep -i yum .