Hoe LiteCart Shopping Cart Platform op Ubuntu 16.04 te installeren
LiteCart is een gratis en open source winkelwagenplatform geschreven in PHP, jQuery en HTML 5. Het is een eenvoudige, lichtgewicht en gebruiksvriendelijke e-commerce software
Onder Linux worden veel objecten als een bestand beschouwd, ongeacht of het object feitelijk een bestand, apparaat, map of socket is. Het vermelden van een bestand is eenvoudig, daar is de shell voor ingebouwd ls
. Maar wat als een gebruiker wil zien welke bestanden momenteel worden geopend door het webserverproces? Of als die gebruiker wilde weten welke bestanden in een bepaalde directory zijn geopend? Dat is waar het om lsof
gaat. Stel je voor lsof
als ls
met de toevoeging van "open bestanden".
Houd er rekening mee dat, hoewel de BSD's voor deze taak een ander hulpprogramma hebben fstat
, er ook verschillende andere smaken van Unix (bijvoorbeeld Solaris) bestaan lsof
. De opties en vlaggen zijn verschillend op de andere platforms, evenals het uiterlijk van de output, maar over het algemeen zou de kennis in dit artikel ook voor hen van toepassing moeten zijn.
Laten we eerst eens kijken naar het formaat van de lsof
uitvoer en hoe het gelezen moet worden. De gebruikelijke uitvoer lsof
zonder parameters zou er als volgt uitzien. Dit is bijgesneden voor leesbaarheid.
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 254,1 4096 2 /
init 1 root rtd DIR 254,1 4096 2 /
init 1 root txt REG 254,1 36992 7077928 /sbin/init
init 1 root mem REG 254,1 14768 7340043 /lib/x86_64-linux-gnu/libdl-2.13.so
init 1 root mem REG 254,1 1603600 7340040 /lib/x86_64-linux-gnu/libc-2.13.so
init 1 root mem REG 254,1 126232 7340078 /lib/x86_64-linux-gnu/libselinux.so.1
init 1 root mem REG 254,1 261184 7340083 /lib/x86_64-linux-gnu/libsepol.so.1
init 1 root mem REG 254,1 136936 7340037 /lib/x86_64-linux-gnu/ld-2.13.so
init 1 root 10u FIFO 0,14 0t0 4781 /run/initctl
Deze kolommen betekenen het volgende:
init
.init
het is bijna altijd root
.cwd
- De huidige werkdirectory (u merkt misschien de gelijkenis met de pwd
opdracht die de huidige werkdirectory afdrukt).rtd
- De hoofdmap van een proces.txt
- A text file
, dit kan ofwel een configuratiebestand zijn dat betrekking heeft op het proces of de "broncode" die betrekking heeft op (of hoort bij) het proces.mem
- Een zogenaamd "memory mapped file", dat wil zeggen een segment van virtueel geheugen (lees: RAM) dat aan een bestand is toegewezen.r
- Lees.w
- Schrijven.u
- Lezen en schrijven.REG
- Een gewoon bestand.DIR
- Een directory.FIFO
- Als eerste erin, als eerste eruit.Dit is misschien een beetje overweldigend voor nu, maar als je lsof
een paar keer werkt, zal het snel in je hersenen wegzakken.
Zoals hierboven vermeld, is de output van lsof
hier verkort. Zonder enige argumenten of filters, lsof
produceert honderden uitvoerlijnen die u alleen maar in de war zullen brengen.
Er zijn twee basismethoden om dat probleem op te lossen:
lsof
opdrachtregelopties om de resultaten te beperken.grep
.Hoewel de laatste optie misschien comfortabeler klinkt, omdat u de lsof
opdrachtregelopties niet hoeft te onthouden , is deze over het algemeen niet zo flexibel en efficiënt, dus we zullen bij de eerste blijven.
Stel je voor dat je een bestand wilt openen met je favoriete teksteditor en dat de teksteditor je vertelt dat het alleen kan worden geopend in de alleen-lezen modus omdat een ander programma er al toegang toe heeft. lsof
helpt je erachter te komen wie de dader is:
lsof /path/to/your/file
Dit zal een uitvoer opleveren die er ongeveer als volgt uitziet:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
Blijkbaar ben je vergeten een oudere sessie te sluiten! Een soortgelijk probleem doet zich voor wanneer u een NFS-share probeert te ontkoppelen en u umount
vertelt dat dit niet kan, omdat iets nog steeds toegang heeft tot de gekoppelde map. Nogmaals, lsof
kan u helpen bij het identificeren van de boosdoener:
lsof +D /path/to/your/directory/
Let op de achterliggende schuine streep, dat is belangrijk. Anders lsof
gaat u ervan uit dat u een gewoon bestand bedoelt. Laat u niet verwarren door de +
voorkant van de vlag - lsof
heeft zoveel opdrachtregelopties die het nodig heeft +
naast de meer gebruikelijke -
. De uitvoer zou er als volgt uitzien:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mocp 5637 music 4r REG 0,19 10147719 102367344 /home/Music/RMS_GNU_SONG.ogg
Dat betekent dat het proces mocp
met de PID 5637
van de gebruiker music
een bestand heeft geopend met de naam RMS_GNU_SONG.ogg
. Maar zelfs na het afsluiten van dat proces is er nog steeds een probleem: het NFS-volume kan niet worden verwijderd.
lsof
heeft een -c
vlag die bestanden weergeeft, opende een willekeurige procesnaam.
lsof -c mocp
Dat zou een output opleveren die er als volgt uitziet:
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
In dit voorbeeld is er nog een andere mocp
uitvoering, waardoor u de share niet kunt ontkoppelen. Nadat je dat proces hebt afgesloten, wil je zeker weten dat de gebruiker music
geen andere potentieel problematische bestanden heeft geopend. lsof
heeft een -u
vlag voor het weergeven van bestanden die door een specifieke gebruiker zijn geopend. Onthoud dat een bestand niet altijd een gewoon bestand op uw harde schijf is!
lsof -u music
U kunt ook meerdere gebruikers passeren, gescheiden door komma's:
lsof -u music,moremusic
Een belangrijke opmerking over het standaardgedrag van lsof
: de resultaten zijn OR- gebaseerd, wat betekent dat u bestandsresultaten zult zien die worden geopend door processen die eigendom zijn van de gebruiker music
of de gebruiker moremusic
. Als u resultaten wilt zien die overeenkomen met processen die eigendom zijn van beide gebruikers, moet u de vlag doorgeven -a
:
lsof -au music, moremusic
Omdat beide gebruikers in de groep zitten musicusers
, kunt u ook bestanden op basis van groep weergeven:
lsof -g musicusers
U kunt ook vlaggen op de opdrachtregel combineren:
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
In de laatste regel hebben we nog een speciale vlag toegevoegd - ^
wat staat voor een logische NOT . Als de uitvoer leeg is na het uitvoeren van die opdracht, zal het ontkoppelen hoogstwaarschijnlijk succesvol zijn.
In de vorige voorbeelden keken we vooral naar reguliere bestanden. Hoe zit het met stopcontacten en netwerkverbindingen?
Om een lijst weer te geven van alle huidige netwerkverbindingen lsof
heeft de -i
vlag:
lsof -i
De uitvoer lijkt op wat we tot nu toe hebben gezien ...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
owncloud 3509 myuser 25u IPv4 44946 0t0 TCP strix.local:34217->myserver.vultr.com:https (ESTABLISHED)
firefox 3612 myuser 82u IPv4 49663 0t0 TCP strix.local:43897->we-in-f100.1e100.net:https (ESTABLISHED)
ssh 3784 myuser 3u IPv4 10437 0t0 TCP strix.local:51416->someserver.in:ssh (ESTABLISHED)
wget 4140 myuser 3w IPv4 45586 0t0 TCP strix.local:54460->media.ccc.de:http (CLOSE_WAIT)
... behalve één verschil: in plaats van bestandsnamen of mappen NAME
toont de kolom nu verbindingsinformatie. Elke verbinding bestaat uit de volgende onderdelen:
Zoals met veel andere tools, kunt u ervoor kiezen om DNS-namen en -poorten ( -n
en -P
respectievelijk) niet om te zetten. De vlag -i
heeft aanvullende parameters. U kunt opgeven of om aan te tonen tcp
, udp
of icmp
verbindingen of bepaalde poorten:
lsof -i :25
or
lsof -i :smtp
Nogmaals, parameters kunnen worden gecombineerd. Het volgende voorbeeld ...
lsof -i tcp:80
... toont u alleen TCP-verbindingen via poort 80. U kunt het ook combineren met de opties die u al kent van "klassieke" bestanden:
lsof -a -u httpd -i tcp
Dit toont u alle TCP-verbindingen die door de gebruiker zijn geopend httpd
. Let op de -a
vlag, die het standaardgedrag van verandert lsof
(zoals eerder vermeld). Zoals met de meeste opdrachtregelprogramma's, kunt u extreem diep gaan. Het volgende laat alleen TCP-verbindingen zien met de status "ESTABLISHED":
lsof -i -s TCP:ESTABLISHED
Op dit punt zou u een basiskennis moeten hebben van hoe lsof
werkt, samen met enkele veelvoorkomende gebruikssituaties. Voor meer informatie, zie de manpage van lsof
op uw systeem.
LiteCart is een gratis en open source winkelwagenplatform geschreven in PHP, jQuery en HTML 5. Het is een eenvoudige, lichtgewicht en gebruiksvriendelijke e-commerce software
NFS is een netwerkgebaseerd bestandssysteem waarmee computers toegang hebben tot bestanden via een computernetwerk. Deze gids legt uit hoe u mappen via NF kunt weergeven
Gebruikt u een ander systeem? Matomo (voorheen Piwik) is een open source analyseplatform, een open alternatief voor Google Analytics. Matomo source wordt gehost o
Inleiding In deze tutorial leert u hoe u een basisbeveiligingsniveau configureert op een gloednieuwe Vultr VC2 virtuele machine met Ubunt
McMyAdmin is een Minecraft-serverbedieningspaneel dat wordt gebruikt om uw server te beheren. Hoewel McMyAdmin gratis is, zijn er meerdere edities, waarvan sommige pai zijn
TeamTalk is een conferentiesysteem waarmee gebruikers hoogwaardige audio- / videogesprekken kunnen voeren, tekstchatten, bestanden kunnen overdragen en schermen kunnen delen. Het ik
Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed gebruikt. Wat thi
Ruby on Rails is een populair webraamwerk voor Ruby dat is ontwikkeld om de productiviteit van programmeurs te verhogen. Het verkrijgen van verschillende edelstenen en afhankelijkheden t
Introductie Sensu is een gratis en open source monitoringoplossing die kan worden gebruikt om server, applicatie en verschillende systeemservices te monitoren. Sensu i
PhpBB is een open source prikbordprogramma. Dit artikel laat zien hoe je phpBB bovenop een Apache-webserver op Ubuntu 16.04 installeert. Het was geschreven
Slechts één gebruiker, root, kan gevaarlijk zijn. Dus laten we dat oplossen. Vultr geeft ons de vrijheid om te doen wat we willen met onze gebruikers en onze servers
Vultr biedt verschillende manieren om toegang te krijgen tot je VPS om te configureren, installeren en gebruiken. Toegangsgegevens De standaard toegangsgegevens voor uw VPS-ar
Gebruikt u een ander systeem? Fuel CMS is een op CodeIgniter gebaseerd contentmanagementsysteem. De broncode wordt gehost op GitHub. Deze gids laat zien hoe t
Gebruikt u een ander systeem? Zabbix is een gratis en open source enterprise-ready software die wordt gebruikt om de beschikbaarheid van systemen en netwerkcomponenten te bewaken
Gebruikt u een ander systeem? Couch CMS is een eenvoudig en flexibel, gratis en open source Content Management Systeem (CMS) waarmee webdesigners kunnen ontwerpen
Golang is een door Google ontwikkelde programmeertaal. Dankzij zijn veelzijdigheid, eenvoud en betrouwbaarheid is Golang uitgegroeid tot een van de meest bevolkte
IRC is populair bij ontwikkelaars en gebruikers van open source software. Een van de nadelen van IRC is dat wanneer u niet online bent, u importan kunt missen
Het gebruik van een sudo-gebruiker om toegang te krijgen tot een server en opdrachten uit te voeren op rootniveau is een veel voorkomende praktijk onder Linux en Unix-systeembeheerder. Het gebruik van een sud
Gebruikt u een ander systeem? DokuWiki is een open source wiki-programma geschreven in PHP waarvoor geen database nodig is. Het slaat gegevens op in tekstbestanden. DokuWik
Dit artikel leert u hoe u een chroot-gevangenis op Debian instelt. Ik neem aan dat u Debian 7.x gebruikt. Als u Debian 6 of 8 gebruikt, kan dit werken, bu
Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek
ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.
WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+
Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.
Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie
13 Commerciële data-extractietools voor big data
Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true
Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.
Een inzicht in 26 Big Data-analysetechnieken: deel 1
AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.