Архив

Публикации с меткой ‘bash’

Скрипт (спецсимволы в паролях экранировать):

#!/bin/bash
cd /var/www/backup/
#local
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > site.ru.sql.gz
tar -czf site.ru.tar.gz ../site.ru
#gdrive
GDRIVE=/root/gdrive
for f in *.gz
do
    $GDRIVE list | grep $f | awk '{print $1}' | xargs -I {} sh -c "$GDRIVE delete {}"
    $GDRIVE upload $f
done

Более простой не универсальный вариант:

#!/bin/bash
#local
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > /var/www/backup/site.ru.sql.gz
tar -czf /var/www/backup/site.ru.tar.gz /var/www/site.ru/
#gdrive
/root/gdrive list | grep site.ru.sql.gz | awk '{print $1}' | xargs -I {} sh -c '/root/gdrive delete {}'
/root/gdrive upload /var/www/backup/site.ru.sql.gz
/root/gdrive list | grep site.ru.tar.gz | awk '{print $1}' | xargs -I {} sh -c '/root/gdrive delete {}'
/root/gdrive upload /var/www/backup/site.ru.tar.gz

Информация о GDrive (установка и использование): https://github.com/prasmussen/gdrive

См. также: cron резервное копирование файлов и базы данных сайта с выгрузкой на удаленный ftp

Categories: Unix Tags: ,
18 сентября 2017 Нет комментариев

Для пакетного изменения кодировки из windows-1251 в uft-8.
Изменить кодировку всех *.php файлов в папке:

find . -name "*.php" -exec iconv -f WINDOWS-1251 -t UTF-8 {} -o tmp \; -exec mv tmp {} \;

Изменить кодировку просто всех файлов в папке:

find . -type f -exec iconv -f WINDOWS-1251 -t UTF-8 {} -o tmp \; -exec mv tmp {} \;
Categories: Unix Tags: ,
11 сентября 2017 Нет комментариев

Скрипт:
в пароле для mysql спецсимволы нужно экранировать, например \)

#!/bin/bash
tar -czf /var/www/backup/site.ru.tar.gz /var/www/site.ru/
mysqldump --opt -udbuser -pdbpassword dbname | gzip -c -9 > /var/www/backup/site.ru.sql.gz
lftp -c 'open -e "mput -O ftpdir/ /var/www/backup/*.gz " -u ftpuser,ftppassword ftpserver exit'

Задание cron (будет выполняться в 2:30 каждый день):

crontab -e
30 2 * * * /usr/bin/perl /var/www/backup/site.ru.sh >> /var/www/backup/site.ru.log 2>&1

https://www.frameworks.su/article/rezervnoe_kopirovanie_sayta_s_pomoshchyu_cron

См. также: Резервное копирование файлов и базы данных сайта с выгрузкой на Google Drive

Categories: Unix Tags: ,

Для удаления ^M (DOS перевод строки):

tr -d \\r < dosfile > newfile
Categories: Unix Tags:
17 апреля 2010 1 комментарий

Использовалась Ip-камера Media Tech MT4009, смотреть которую можно только через Internet Explorer, т.к. ей нужен ActiveX. Умеет делать снимки по движению — 97 кадров, после чего перезаписывает старые файлы, т.е. текущий снимок может иметь какое угодно имя. Файлы сохраняет в папку c:\tmp\webmd, настроек чтобы изменить путь для сохранения нет. Получилось все так:
1. Расшариваем папку webmd.
2. На Web-сервере, с которого будем смотреть картинку: предположительно у нас там FreeBSD с установленным apache. Монтируем расшаренную папку. Для монтирования создаем скрипт webmd_up.sh:

#!/bin/bash
mount_smbfs -W DOMAIN_NAME -I 172.16.5.19 //username@pc_name/webmd/ /usr/home/username/public_html/remote

Для отмонтирования webmd_down.sh:

#!/bin/bash
umount /usr/home/username/public_html/remote

3. index.php:

<?php
define('PATH', 'remote/*.');
foreach (glob(PATH.'jpg') as $remote_file)
{
   $files_array[$remote_file] = filemtime($remote_file);
}
asort($files_array);
$keys = array_keys($files_array);
$selected_file = array_pop($keys);
echo "<img src='".$selected_file."?nocashe=".time()."' alt='webmd current' title='webmd' />";
?>

?nocashe=".time()." — нужно для того, чтобы отключить кэширование изображений.
4. На стрничке, где будем смотреть картинку, удобным для вас способом подключаем такой javascript:

function refresh() {
   document.all.webmd.src = document.all.webmd.src;
}
window.setInterval("refresh()", 1000);
var html = "<iframe name=\"webmd\" src=\"http://domain_name/~username/\" width=\"640px\" height=\"480px\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\"></iframe>";
document.write(html);
Categories: Unix, Web Tags: , ,
16 апреля 2010 Нет комментариев

Находим последний измененный файл и копируем его в необходимый каталог с необходимым именем.

#!/bin/bash
cd /usr/home/krylov/public_html/remote/
ls -t | grep -v \/ | head -n 1 | while read var; do echo "$var"; cp $var ../webmd.jpg; done
Categories: Unix Tags: