x[^x].*x
- вот так [0-9]+x[0-9]+.+[0-9]+x[0-9]+
[0-9]+x
- цифры 1 раз и больше#!/bin/sh
#скрипт бэкапа баз данных
###########################
#Создаем папку для архивов. -p не ругается когда папка уже есь test проверяет есть ли папка для чистых логов
test ! -d /var/backup/mysql/`date +%Y` && { mkdir -p /var/backup/mysql/`date +%Y` ; }
test ! -d /var/backup/mysql/last && { mkdir -p /var/backup/mysql/last ; }
#прячем от умных, и так не зайдут но всеже.
chmod 600 /var/backup/mysql
chmod 600 /var/backup/mysql/last
# делаем сам дапм файлов sql, свежинькие файлы лежат всегда в ней, очень удобно не нужно заходить в архивы и искать там вчерашние базы, и логируется.
for i in `mysql -u***** -p******** -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -u********* -p********* $i > /var/backup/mysql/last/$i.sql;done >> /dev/null 2>> /var/log/sqlbackup.log
# Архивируем дамп, ну и логируем разумеется
cd /var/backup/mysql/
tar -czvf /var/backup/mysql/`date +%Y`/sqldump-`date +%Y-%m-%u`.tar.gz ./last >> /dev/null >> /var/log/sqlbackup.log
#(echo "Subject: Бэкап mysql server завершен"; cat /var/log/sqlbackup.log;) | /usr/sbin/sendmail viktor@demo.ru
################## Конец скрипта
for i in `mysql -uroot -pпароль -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -uroot -pпароль $i > /var/backup/mysql/$i/`date +%Y-%m-%d`-$i; gzip /var/backup/mysql/$i/`date +%Y-%m-%d`-$i;done
grep -v
- исключает из массива команда $$ echo "true" || echo "false"
service httpd status | grep "running" || service httpd restart
find /etc/nginx -type f -exec grep -l 3dpaneli.ru {} \; | xargs ls -lah
find -
искать в каталоге-type f
только имена файлов-exec
выполнить команду с найденым файломgrep -l
- не выводить сам греп а выводить имя файла в котором он нашел {}
- то что на выводе у find \;
- просто заканчиваем файнд|
- вывод передаем следующей командеxargs ls -lah
xargs почитай отдельно короче он передаст вывод пути файла на ls -lah и получаем все че хочеш find /tmp/you_papka -type d -exec chmod 755 {} ;\
- выставить права на все каталогиfind /tmp/you_papka -type f -exec chmod 644 {} ;\
- выставить права на все файлы в этой папке и нижеchmod -R root:root /tmp/you_papka
- владелец root группа root на все что в этой папке (опасная команда вводить только с полным путем иначе есть вариант снести права всей системы ооочень быстро работает. find /var/www/ -type f -exec mv {} {}_renamed \;
find
-рекурсивный поиск от заданного каталога и ниже/var/www
- где искать, если в текущем каталоге то можно заменить на .-type f
- только файлы-exec
выполнить с найденнымmv
переместить{}
то что найдено в данном случае имя файла \;
- просто закончит команду.find /var/www/ -type f -exec echo {} {}_renamed \;
man ls
ls --help
/bin/bash/ls -t1 /media/backups/ |tail -n +25| /bin/bash/xargs rm -f
find . -name "*.jar" ! -name "$(ls -1 *.jar | head -n1)" -delete