find ./ -type f -exec sh -c 'cat /dev/null > {}' \;
Скрипт (спецсимволы в паролях экранировать):
#!/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
Для пакетного изменения кодировки из 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 {} \;
Скрипт:
в пароле для 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
Для удаления ^M (DOS перевод строки):
tr -d \\r < dosfile > newfile
Использовалась 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);
Находим последний измененный файл и копируем его в необходимый каталог с необходимым именем.
#!/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