Personal tools

Difference between revisions of "Scripturi BASH"

From linux360

Jump to: navigation, search
(Cautarea unui fisier ce contine un anumit string: Added simpler example and corrected style)
Line 49: Line 49:
 
=== Cautarea unui fisier ce contine un anumit string ===
 
=== Cautarea unui fisier ce contine un anumit string ===
  
<pre>find /path -name "*" -exec grep -H "string"  '{}' \;</pre>
+
find /path -name "*" -exec grep -H "&lt;string&gt;"  '{}' \;
 +
sau
 +
grep -Hr "&lt;string&gt;" /path/*
  
Bineinteles, in loc de "string" puteti pune o expresie regulara.<br />
+
Fireste, <tt>&lt;string&gt;</tt> poate fi atat un sir de caractere cat si orice fel de expresie regulata suportata de versiunea particulara de <tt>grep</tt> disponibila pe masina in cauza.<br />
Deasemenea, pentru o cautare ''case insensitive'', adaugati parametrul '''-i''' la ''grep''.
+
Deasemenea, pentru a cauta fara a face diferenta intre majuscule si minuscule, adaugati parametrul <tt>-i</tt> la <tt>grep</tt>.
  
 
=== Stergerea fisierelor backup ===
 
=== Stergerea fisierelor backup ===

Revision as of 12:08, 28 November 2005

Exemple scripturi BASH

Script ce elimina zona asociata unui domeniu dat ca parametru de intrare

Puteţi elimina porţiunea din named.conf de la zone "nume.domeniu.dat.ca.parametru.de.intrare" { până la acolada închisă asociată acoladei deschise de mai sus.

Scriptul este:

#!/bin/bash

# Bind zone remove script
#
# Copyright (C) 2005 Silvian Cretu <silvian86@yahoo.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 

if [ ! $# = 1 ]; then
    echo "Usage: $0 domain";
    echo "The path to named.conf is defined inside the script";
    		 else
	pathToNamedDotConf=/etc/named.conf
	
	x=$(grep -n "zone \"$1\" {" $pathToNamedDotConf | cut -f1 -d:)
	sed $x,/\}\;/d $pathToNamedDotConf > temp
	c=$(sed -n $x'p' < temp)
	if [ "x`echo $c | grep "zone"`" = "x" ]
	then
		sed $x' d' temp > $pathToNamedDotConf
	else
		cat temp > $pathToNamedDotConf
	fi
	rm -f temp
	exit
fi</pre>

Cautarea unui fisier ce contine un anumit string

find /path -name "*" -exec grep -H "<string>"  '{}' \;

sau

grep -Hr "<string>" /path/*

Fireste, <string> poate fi atat un sir de caractere cat si orice fel de expresie regulata suportata de versiunea particulara de grep disponibila pe masina in cauza.
Deasemenea, pentru a cauta fara a face diferenta intre majuscule si minuscule, adaugati parametrul -i la grep.

Stergerea fisierelor backup

Asa cum stiti, multe editoare text fac backup la fisierele editate. Ei bine... in cazul aplicatiilor web, acest backup mai mult dauneaza decat sa ajute. Nu ar fi prea placut sa aveti un index.php~ in DocumentRoot

find /path -name "*~" -exec rm -f '{}' \;

Probleme cu spatiul pe disc?

Nu stiti unde "vi s-a dus" spatiul de pe disc si e cam greu sa verificati fiecare director in parte?
Linia urmatoare va ajuta, facand totodata si o sortare.

du --max-depth=1 /path | sort -n