Palestra Linux Survival Kit para PHPeiros

45
Linux Survival Kit para PHPeiros By / Leonardo Tumadjian @tumadjian

Transcript of Palestra Linux Survival Kit para PHPeiros

Page 1: Palestra Linux Survival Kit para PHPeiros

Linux Survival Kit paraPHPeiros

By / Leonardo Tumadjian @tumadjian

Page 2: Palestra Linux Survival Kit para PHPeiros

Sobre mim:Formado em Análise e Desenvolvimento de Sistemas

Programador PHP desde 2009Instrutor desde 2012

Nas horas vagas: Gamer, Biker, Shooter, GuitarristaEvangelista da comunidade PHPSP

Víciado em séries estranhas!

Page 3: Palestra Linux Survival Kit para PHPeiros

Antes de começarmos:Contribua com sua comunidade mais próxima, se tiver um tempo ;)

Como contribuir?

Page 4: Palestra Linux Survival Kit para PHPeiros

Aviso!Não sou um sysadmin em Linux, sou um simples sobrevivente que

decidiu colocar aqui alguns dos comandos que salvaram minha vidaquando estive em perigo na selva digital!

Page 5: Palestra Linux Survival Kit para PHPeiros

Todos Prontos?

Page 6: Palestra Linux Survival Kit para PHPeiros

Como testar?

Page 7: Palestra Linux Survival Kit para PHPeiros

O que é Bash?O bash é um interpretador de comandos, uma espécie de tradutorentre o sistema operacional e o usuário, normalmente conhecido

como shell. Permite a execução de sequências de comandos diretono prompt do sistema ou escritas em arquivos de texto, conhecidos

como shell scripts. Foi liberado em 1989 e é mantido pelo projetoGNU.

Wikipedia: https://pt.wikipedia.org/wiki/Bash

Page 8: Palestra Linux Survival Kit para PHPeiros

AtalhosLimpar o terminal rapidamentectrl + l(L)

Abortar um processo ativo no terminalctrl + c

Logout de um SSH ou programa logado no terminalctrl + d

Page 9: Palestra Linux Survival Kit para PHPeiros

Comandos básicosExecutar como super user / root$ sudo [ação]

para se logar como super user / root$ sudo su

Page 10: Palestra Linux Survival Kit para PHPeiros

Como consultar um comando?$ man [comando]

Syntax man [­acdfFhkKtwW] [­­path] [­m system] [­p string] [­C config_file] [­M pathlist] [­P pager] [­B browser] [­H htmlpager] [­S section_list] [section] name ...

Key:

­C config_file The configuration file to use; the default is /etc/man.config. (See man.config(5).)

­M path The list of directories to search for man pages. Separate the directories with colons. An empty list is the same as not specifying ­M at all. See SEARCH PATH FOR MANUAL PAGES.

Page 11: Palestra Linux Survival Kit para PHPeiros

Comandos básicosExecutar como super user / root$ cd [diretorio]

Exemplo / acessa os diretórios iniciais do linux$ cd /home/leonardo

Voltar um diretório$ cd ../

ou mais$cd ../../

Voltar ao ultimo do ultimo diretório que veio$ cd ­

Acesso o diretorio do usuário logado(ou root): /home/seunome$ cd ~

Page 12: Palestra Linux Survival Kit para PHPeiros

Comandos básicosListagem de diretórios e arquivos$ ls [diretório / atual se não informado]

listar organizado(com detalhes)$ ls ­l

listar inclusive arquivos ocultos $ ls ­la

listar arquivo e seu tamanho simples de ler$ ls ­lh

Consulta diretorio atual$ pwd

Page 13: Palestra Linux Survival Kit para PHPeiros

Comandos básicosExclui arquivos que seu usuário tem permissão$ rm [caminho/arq] ...

exclui diretorio recursivamente sem perguntar (cuidado!)$ rm ­rf [diretório]

Exemplo: $ rm ­rf /var/wrong­project

remover um tipo específico de arquivo, mostrando­os ex:$ rm ­rfv *.phpremoved 'teste1.php'removed 'teste2.php'removed 'teste3.php'removed 'teste4.php'

Page 14: Palestra Linux Survival Kit para PHPeiros

Comandos básicosMove o arquivo para um local especificadoe renomeia se informado$ mv [arquivo] [para]

Exemplo:$ mv /caminho/para/arquivo.php /novo/diretorio/arquivo.php

Renomeando: 'arquivo.php' para 'novonome.php'$ mv arquivo.php novonome.php

Movendo com verboso(informa a mudança)$ mv ­v arquivo diretorio/'arquivo' ­> 'diretorio/arquivo'

Page 15: Palestra Linux Survival Kit para PHPeiros

Comandos básicosCopia um arquivo para um local informado$ cp ­v [arquivo] [destino]

Exemplo:$ cp /caminho/para/arquivo.php ./diretorio/

Copiando diretório, se não existir o destino ele cria$ cp ­rf [dir] [destino]

Exemplo copia pasta 'carros' para 'dismanche/carros'$ cp ­rf carros/ dismanche/carros

Page 16: Palestra Linux Survival Kit para PHPeiros

Comandos básicosCriando diretório$ mkdir [caminho]/[nomedodir]

Criando dir local$ mkdir [nomedir]

Criando arvores$ mkdir ­pv projeto/css/,public/,src/app/,entities/

mkdir: created directory 'projeto'mkdir: created directory 'projeto/css/'mkdir: created directory 'projeto/public/'mkdir: created directory 'projeto/src'mkdir: created directory 'projeto/src/app/'mkdir: created directory 'projeto/src/entities/'

Page 17: Palestra Linux Survival Kit para PHPeiros

Comandos básicosMuda data de última alteração do arquivo para horario atual$ touch [arquivo] ...

Se não existir cria o arquivo vazio$ touch index.php

Cria mais de um arquivo$ touch index.php test.php form.php

Page 18: Palestra Linux Survival Kit para PHPeiros

Comandos básicosDetalha todas informações da rede e seu IP$ ifconfig

Detalha a rede primária(eth0)$ ifconfig eth0Resultado:

eth0 Link encap:Ethernet HWaddr 02:8c:0a:1s:65:4e inet addr:122.21.21.223 Bcast:122.11.11.255 Mask:255.255.240.0 inet6 addr: fe80::8a:dff:fe1e:654a/64 Scope:Link

Page 19: Palestra Linux Survival Kit para PHPeiros

Comandos básicosAltera a permissão de um arquivo ou diretório$ chmod [parametros] [modo] [arquivo/dir]

Exemplo altera todos arquivos e diretóriosrwxr­xr­x$ chmod ­R 755 myproject/

ou

Permissão de ler, escrever e executar só para grupo(g)$ chmod ­R g+rwx myproject/

Page 20: Palestra Linux Survival Kit para PHPeiros

Comandos básicosEntendendo permissões

rwxr­x­­x

rwx = o dono do arquivo (read, right, execute)r­x = o grupo do arquivo pode (ler e executar)­­x = outros podem (executar)

pode ser representado por números octais: 751onde: 7 = rwx, 5 = r­x, 1 = ­­x

mais comum$ chmod ­R 755 projeto/

Page 21: Palestra Linux Survival Kit para PHPeiros

Comandos básicosMudando dono de arquivosls ­ld­­x­­x­­x 2 ubuntu www­data 4096 Dec 2 07:11 carros

O comando chown$ chown [pars] [user]:[group] [diretório]

mudando o dono e seu grupo$ chown ­R root:root carros

Page 22: Palestra Linux Survival Kit para PHPeiros

Comandos básicosComo editar arquivos? mais comum é o vim/vi

"vi" editor de terminal mais antigovi [arquivo].[ext]

"vim" vi improved um editor melhoradovim [arquivo].[ext]

Dicas simples:Iniciar edição: digite "i"Sair de edição: digite "Esc"buscar: fora do modo edição digite "/[exp/busca]" + n (next)excluir linhas: digite "dd" ou "3dd" apaga 3 linhassalvar: em modo "Esc" digite ":wq" grava sai ou ":w" só salva

Page 23: Palestra Linux Survival Kit para PHPeiros

Comandos básicoscomo deszipar isso? *.tar.gz$ tar ­xzvf file1.tar.gz file1.tar.gz [...]

E isso? *.zip$ unzip meuprojeto.zip meuprojeto2.zip [...]

Page 24: Palestra Linux Survival Kit para PHPeiros

Haa!! glu glu!

Page 25: Palestra Linux Survival Kit para PHPeiros

Agora que estamos aquecidos=)

Page 26: Palestra Linux Survival Kit para PHPeiros

Acesso SSH

Se não tiver na sua distro rode:$ sudo apt­get install ssh

Uso ssh$ ssh [usuario]@[ip/dns]:[dir]

Page 27: Palestra Linux Survival Kit para PHPeiros

Acesso SSH

chmod na sua chave uma vez só$ chmod 400 /path/to/minhachave.pem

$ssh ­i /path/to/minhachave.pem ubuntu@meuserver:/home/ubuntu

Page 28: Palestra Linux Survival Kit para PHPeiros

Acesso SSH

Automatizaracesse no diretorio do seu user ex:cd /home/leonardo/.ssh/

crie o arquivo "config" e adicione esses detalhes:

Host [um apelido para seu host]Hostname [o host destino]User [usuario do sistema]IdentityFile [caminho do seu arquivo *.pem]

Exemplo:

Host meu­serverHostname www.meu­server.comUser ubuntuIdentityFile /home/leonardo/keys/mesherkey.pem

Page 29: Palestra Linux Survival Kit para PHPeiros

Acesso SSH

$ ssh meu­server

Page 30: Palestra Linux Survival Kit para PHPeiros

Instalar pacotes comuns$ apt­get install [nome do pacote]

ou se tiver$ aptitude install [nome do pacote]

Page 31: Palestra Linux Survival Kit para PHPeiros

Download de arquivo externobaixar aquivo via terminalwget https://uma­url.com/debian­7.2.0.box

12% [=================>

Page 32: Palestra Linux Survival Kit para PHPeiros

Link simbólicoPara criar link simbólico$ ln ­s [caminho/arquivo] [arquivo/link]

Page 33: Palestra Linux Survival Kit para PHPeiros

Informações do ServidorQual minha distro? debian based$ cat /etc/lsb­releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=14.04DISTRIB_CODENAME=trustyDISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Detalhes mais técnicos, proc, kernal etc..$ uname ­a

Page 34: Palestra Linux Survival Kit para PHPeiros

Informações do Servidor$ free ­h total usado livre compart. buffers em cacheMem: 3,7G 2,6G 1,1G 177M 72M 944M

$ df ­hSist. Arq. Tam. Usado Disp. Uso% Montado em/dev/sda1 26G 15G 9,2G 63% /none 4,0K 0 4,0K 0% /sys/fs/cgroupudev 1,9G 4,0K 1,9G 1% /devtmpfs 382M 1,2M 381M 1% /run

Page 35: Palestra Linux Survival Kit para PHPeiros

Informações do ServidorMonitorar processos em execução$ top 3015 leonardo 20 0 1330288 433024 51896 S 7,6 11,1 12:34.69 firefox 2366 leonardo 20 0 716856 22516 14296 S 4,0 0,6 0:14.43 gnome­terminal 1102 root 20 0 310220 43440 29064 S 3,6 1,1 2:34.41 Xorg

Page 36: Palestra Linux Survival Kit para PHPeiros

Informações do ServidorProcurar processos rodando$ ps ­aux | grep php

Page 37: Palestra Linux Survival Kit para PHPeiros

Informações do ServidorComando find$ find [dir] [param] [arquivo]

$ find /var/meuprojeto ­name index.php

ou então:$ find /var/meuprojeto ­name "*.php"

Page 38: Palestra Linux Survival Kit para PHPeiros

Informações do ServidorComando file saber o Mime­type do arquivo$ file ­i granadegranade: image/gif; charset=binary

$ file ­­mime­type granadegranade: image/gif

Page 39: Palestra Linux Survival Kit para PHPeiros

Envio de requisiçoesEnvio de requisição http para um servidorcurl [param] [values] [endereço/end­point]

Envia GET para googlecurl www.google.com.br

Definindo o Methodcurl ­­request POST http://my.api.teste.com

Post com valorescurl ­­data "var1=teste1&var2=teste2" http://meu.site

Page 40: Palestra Linux Survival Kit para PHPeiros

O que esta instalado?Versão do PHP em cliphp ­v

Versão do Mysqlmysql ­v

As versões de todo set web instalado DEBIAN BASED!dpkg ­l | grep '\(php\|mysql\|apache\|nginx\)'

Page 41: Palestra Linux Survival Kit para PHPeiros

Bom, chega neh!?

Page 42: Palestra Linux Survival Kit para PHPeiros

Arquivos de configuração do servidorOnde está o php.ini?find / ­name php.ini

por padrão nginx: /etc/php5/fpm/php.inipor padrão apache: /etc/php5/apache2/php.iniconfig nginx: /etc/nginx/nginx.confconfig apache: /etc/apache/httpd.conf

Page 43: Palestra Linux Survival Kit para PHPeiros

Seguir arquivos em tempo realRetorna as ultimas linhas de um arquivotail ­f [caminho/arquivo]

Arquivo de log apache:/var/log/apache2/access.log/var/log/apache2/error.log

Arquivo de log nginx:/var/log/nginx/access.log/var/log/nginx/error.log

Atenção: pode mudar depende de distro e versão instalada

LIVE CODE SE TIVER REDE :P

Page 44: Palestra Linux Survival Kit para PHPeiros

Duvidas??!

Page 45: Palestra Linux Survival Kit para PHPeiros

Meus contatosAbout me: https://about.me/leonardotumadjian

Email me: [email protected]

Twitter: @tumadjian

Slides no Github: leoqbc