{"id":1156,"date":"2019-05-28T22:28:37","date_gmt":"2019-05-29T01:28:37","guid":{"rendered":"http:\/\/thesqltimes.com\/blog\/?p=1156"},"modified":"2019-05-28T22:28:37","modified_gmt":"2019-05-29T01:28:37","slug":"dba-shell-1","status":"publish","type":"post","link":"https:\/\/thesqltimes.com\/blog\/2019\/05\/28\/dba-shell-1\/","title":{"rendered":"DBA Shell 1: Deletando arquivos de backup com powershell"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Muito \u00fatil!\" data-post-id=\"1156\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><\/div><div class=\"seriesmeta\">Post 1\/3. Este post \u00e9 parte da s\u00e9rie: <a href=\"https:\/\/thesqltimes.com\/blog\/series\/dba-shell\/\" class=\"series-247\" title=\"DBA Shell\">DBA Shell<\/a>\r\n<\/div>\r\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de Leitura:<\/span> <span class=\"rt-time\"> 2<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>Este post inaugura mais uma s\u00e9rie de posts que visa trazer mais conhecimento pr\u00e1tico sobre o uso de powershell e bash no dia-a-dia de um DBA. O objetivo \u00e9 explicar as sintaxes e comandos dessas ferramentas, utilizando situa\u00e7\u00f5es pr\u00e1ticas e com posts mais curtos! A medida que avan\u00e7amos, irei apresentar vers\u00f5es mais elaboradas do scripts, utilizando recursos mais avan\u00e7ados, e sempre explicando cada detalhe do c\u00f3digo!<\/p>\n<p>Vamos aprendendo de pouco em pouco, com paci\u00eancia! E se voc\u00ea tiver sugest\u00f5es ou d\u00favidas de assuntos para abordar, utilize os coment\u00e1rios!<\/p>\n<p><strong>Ah, e outra coisa importante: Jamais execute os exemplos aqui do blog diretamente no seus ambientes. Teste sempre em uma m\u00e1quina de testes e tenha certeza do que esteja fazendo. Toda a execu\u00e7\u00e3o ser\u00e1 por sua conta e risco.<\/strong><\/p>\n<p>Para come\u00e7ar, vamos falar de uma atividade que todo DBA necessita realizar de vez em quando: Deletar arquivos de backup em um ambiente Windows!<\/p>\n<p>Imagine que voc\u00ea tenha diversos arquivos de backup no diret\u00f3rio <em><strong>C:\\SQLBackups<\/strong><\/em>. Para delet\u00e1-los usando powershell, voc\u00ea pode usar o seguinte comando:<\/p>\n<pre class=\"lang:ps decode:true \" title=\"Removendo arquivos com powershell\">Remove-Item -Path C:\\SQLBackups\\*.bak<\/pre>\n[stextbox id=&#8217;info&#8217; caption=&#8217;Formas de abrir o powershell&#8217;]\n<ul>\n<li>Abra o menu iniciar, e digite <em>powershell<\/em><\/li>\n<li>Abra a janela &#8220;executar&#8221; (WINKEY + R) e digite <em>powershell<\/em><\/li>\n<li>Abra o prompt de comando e digite <em>powershell<\/em><\/li>\n<\/ul>\n[\/stextbox]\n<p>&nbsp;<\/p>\n<p>Este script \u00e9 composto por apenas um comando: <strong>Remove-Item<\/strong>. No powershell os comandos s\u00e3o chamados de\u00a0<em><strong>cmdlet<\/strong><\/em>. Todo cmdlet aceita par\u00e2metros. Os valores desses par\u00e2metros s\u00e3o passados ao invocar o comando. No caso acima, estamos especificando apenas um par\u00e2metro:<\/p>\n<pre class=\"lang:ps decode:true \">-Path C:\\SQLBackup\\*.bak<\/pre>\n<p>O par\u00e2metro <em><strong>-Path<\/strong><\/em> indica o caminho do arquivo ou diret\u00f3rio que se deseja remover. Voc\u00ea pode passar <em>wildcards<\/em> (caracteres curinga) para especificar um filtro.<\/p>\n<p>Voc\u00ea tamb\u00e9m pode omitir o nome do par\u00e2metro:<\/p>\n<pre class=\"lang:ps decode:true\">Remove-Item C:\\SQLBackups\\*.bak<\/pre>\n<p>Nesse caso, o powershell vai associar o valor <strong>C:\\SQLBackups&#92;*.bak<\/strong> com o primeiro par\u00e2metro desse comando, que \u00e9 o &#8220;-Path&#8221;.\u00a0 Para simplificar ainda mais, voc\u00ea pode usar um alias chamado <strong><em>rm<\/em><\/strong>, que \u00e9 um apelido para o cmdlet <strong>Remove-Item<\/strong>:<\/p>\n<pre class=\"lang:ps decode:true \" title=\"Usando alias rm\">#Com o nome do par\u00e2metro\nrm -Path C:\\SQLBackups\\*.bak\n\n#Sem o nome do par\u00e2metro!\nrm C:\\SQLBackups\\*.bak<\/pre>\n<p>Os alias s\u00e3o &#8220;apelidos&#8221; para comandos, semelhantes a alias de colunas ou de tabelas em um comando SQL. O powershell tem uma s\u00e9rie de alias que tamb\u00e9m s\u00e3o instalados juntos com o powershell. Iremos conhec\u00ea-los v\u00e1rios deles nesta s\u00e9rie! Um comando pode ter v\u00e1rios alias definidos pra ele. Por exemplo, al\u00e9m do &#8220;rm&#8221;, o cmdlet <strong>Remove-Item<\/strong> tamb\u00e9m tem o <em><strong>del<\/strong> <\/em>como alias:<\/p>\n<pre class=\"lang:ps decode:true \" title=\"Utilizando o alias del\">del C:\\SQLBackups\\*.bak<\/pre>\n<p>&nbsp;<\/p>\n<p>Para simplificar:<\/p>\n<ul>\n<li>Formas de remove arquivos de backup de um diret\u00f3rio:\n<pre class=\"lang:ps decode:true\">Remove-Item -Path &lt;CaminhoDiretorio&gt;\\*.bak\nRemove-Item &lt;CaminhoDiretorio&gt;\\*.bak\nrm -Path &lt;CaminhoDiretorio&gt;\\*.bak\nrm &lt;CaminhoDiretorio&gt;\\*.bak\ndel &lt;CaminhoDiretorio&gt;\\*.bak<\/pre>\n<\/li>\n<li><strong>Cmdlet<\/strong> \u00e9 como os comandos nativos do powershell s\u00e3o chamados<\/li>\n<li>Alias s\u00e3o &#8220;apelidos&#8221; para comandos do powershell<\/li>\n<\/ul>\n<p>Fique ligado na s\u00e9rie! Em outros posts, iremos ir evoluindo esses scritps, adicionando mais filtros, como datas, adicionando em scripts, etc.<\/p>\n<p>At\u00e9 l\u00e1!<\/p>\n<p>Fontes e links \u00fateis:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.management\/remove-item?view=powershell-6\">Remove-Item<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/developer\/cmdlet\/cmdlet-overview\">Cmdlets<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_aliases?view=powershell-6\">Alias<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"seriesmeta\">This entry is part 1 of 3 in the series <a href=\"https:\/\/thesqltimes.com\/blog\/series\/dba-shell\/\" class=\"series-247\" title=\"DBA Shell\">DBA Shell<\/a><\/div><p>Este post inaugura mais uma s\u00e9rie de posts que visa trazer mais conhecimento pr\u00e1tico sobre o uso de powershell e bash no dia-a-dia de um DBA. O objetivo \u00e9 explicar as sintaxes e comandos dessas ferramentas, utilizando situa\u00e7\u00f5es pr\u00e1ticas e com posts mais curtos! A medida que avan\u00e7amos, irei apresentar vers\u00f5es mais elaboradas do scripts,&hellip;&nbsp;<a href=\"https:\/\/thesqltimes.com\/blog\/2019\/05\/28\/dba-shell-1\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">DBA Shell 1: Deletando arquivos de backup com powershell<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[8,3,94,95,93],"tags":[33,250,96,248,249,252,251],"series":[247],"class_list":["post-1156","post","type-post","status-publish","format-standard","hentry","category-administracao","category-banco-de-dados-2","category-powershell","category-powershell-windows","category-windows","tag-dba","tag-del","tag-powershell","tag-remove-item","tag-rm","tag-script","tag-shell","series-dba-shell"],"_links":{"self":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/comments?post=1156"}],"version-history":[{"count":10,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1156\/revisions"}],"predecessor-version":[{"id":1166,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1156\/revisions\/1166"}],"wp:attachment":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media?parent=1156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/categories?post=1156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/tags?post=1156"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/series?post=1156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}