Nalezení určitého slova v určitém typu souboru
Příklad, pokud například potřebujete nalézt string 10.0.0.2 ve všech php souborech:
find /cesta/k/adresari/ -type f -name "*.php" -print0 | xargs -0 grep -li '10.0.0.2'
Příklad, pokud například potřebujete nalézt string 10.0.0.2 ve všech php souborech:
find /cesta/k/adresari/ -type f -name "*.php" -print0 | xargs -0 grep -li '10.0.0.2'
Trochu vybočím z tématiky linuxu, protože jsem podobný příspěvek na netu nikde nenašel a má zkušenost určitě pomůže vyřešit problém řadě uživatelů mobilního telefonu Apple iPhone.
Stalo se mi jednoho dne že mi telefon upadl a svezl se po betonové dlažbě zrovinka tak nešťastně, že se mi poškrábal display.
Hledal jsem na netu nějaká řešení na odstranění škrábanců a jediné co jsem nalezl je pořídít si fólii která dokáže jemné škrábance zahladit. A ano také to tak funguje u jemných škrábanců. Fólie však nezakryje hlubší škrábance na displayi. Přemýšlel jsem a objevil velice snadný způsob, jak zahladit i hlubší poškrábání.
Pokud jste majiteli mobilního telefonu Apple iPhone, a z nějakého důvodu se vám poškrábal display, postup je velice snadný.
Budete potřebovat tyto věci
1) zakoupit fólii, která je běžně k sehnání třeba na Aukru.
2) nějaký čirý olej, např kuchyňský stolní nebo jakýkoliv, je to jedno.
3) jehlu
4) ubrousek
Očistíte display, a hrotem jehly nanesete kapičku oleje na rýhu a hrotem jehly jí roztáhnete po celé délce rýhy (škrábance).
Hrotem ubrousku vysajete přebytečný olej, a nalepíte krycí fólii.
A voilá, škrábanec je pryč.
Pokud potřebujete promazat adresář od starších souborů, např. jpg soubory starší více jak 100 dní, použijte příkaz:
find /cesta/k/adresari/ -mtime +100 -type f \( -name \*\.jpg \) | xargs rm
Zajímavý script, pomocí kterého zamícháte náhodně řádky v souboru:
#!/bin/bash
# function to display usage message and exit
usage()
{
cat < < eof
$(basename $0) input_filename.txt
eof
exit 1
}
# if number args less than 1...
if [ $# -lt 1 ]; then
usage
fi
# if first arg isn't a file
if [ ! -f $1 ]; then
usage
fi
# open file
exec 3<$1
# declare an array and an integer
declare -a linearray
declare -i counter=0
# read file to linearray
while read line <&3; do
linearray[${counter}]=$line
((counter++))
done
#close file
exec 3>&-
for (( i=0; i < $counter; i++ )); do
switch=1
#get number not already used
while [ $switch -eq 1 ]; do
switch=0
number=$(($RANDOM % $counter))
for num in $linenolist; do
if [ $num -eq $number ]; then
switch=1
fi
done
done
linenolist="$linenolist $number"
echo ${linearray[$number]} >> testoutput.txt
done
echo "DONE"
Pokud používáte MailScanner, a dostáváte tuto chybovou zprávu v maillogu
Clamd::ERROR:: UNKNOWN CLAMD RETURN ./lstat() failed: Permission denied.
server provedl upgrade virus scaneru clamav, kde je změněna skupina z „clamav“ na „clam“.
Problém odstraníte následovně:
1) v souboru /etc/MailScanner/MailScanner.conf proveďte změnu na:
Incoming Work Group = clam
2) dále je potřeba změnit práva celého adresáře /var/spool/MailScanner
chown -R postfix:clam /var/spool/MailScanner
3) stopněte služby
service clamd stop service MailScanner stop
4) přejmenujte /etc/clamd.conf.rpmnew na /etc/clamd.conf
mv /etc/clamd.conf.rpmnew /etc/clamd.conf
5) změna práv
chown -R clam:clam /var/run/clamav chown -R clam:clam /var/log/clamav chown -R clam:clam /var/lib/clamav
6) v souboru /etc/freshclam.conf proveďte změnu na:
DatabaseDirectory /var/lib/clamav DatabaseOwner clam
7) spusťte:
service clamd restart freshclam service MailScanner restart
… a mělo by to makat.
Řešením je sputit následující příkazy:
rm -rf /usr/local/lib/php/.channels pear update-channels
Pokud potřebujete změnit nastavení time_zone pro konkrétní databázi a ne pro celý mysql server stačí do scriptu přidat:
mysql_query("SET time_zone = '+2:00';");
kde si zvolíte svou potřebnou hodnotu.
V souboru /etc/clamd.conf stačí zakomentovat řádku:
#LogFile unix:/var/log/clamav/clamd.log
nebo jí přepsat na:
LogFile /var/log/clamav/clamd.log
Mělo by to pomoci.
Pro php kompilované ze zdroje je potřeba překompilovat php s volbama:
--enable-sysvsem --enable-sysvshm --enable-sysvmsg
Pokud máte php nainstalované z balíčku, stačí doinstalovat balíček php-process:
yum install php-process