Если я хотел заархивировать (или архивировать tar.gz) список путей (рекурсивно) на Linux VPS, затем отправить ZIP / TAR мне по электронной почте, а затем удалить ZIP / TAR, какой самый простой способ сделать это? Сценарий оболочки для задания cron, программы и т. Д.?
Например, вот что я бы сделал:
Остановите apache, mysql, postgresql и стойку
Застегнуться:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*
/home/kerrick/*
/var/lib/mysql/*
# etc.
Отправьте zip-файл по электронной почте в виде вложения в foobar@example.com
Удалите zip-файл
Возобновить apache, mysql, postgresql и стойку
Вы можете использовать следующий скрипт, обновите, конечно, с вашей информацией:
#!/bin/sh
[ -f /etc/redhat-release ] && service httpd stop
[ -f /etc/debian_version ] && service apache2 stop
service mysqld stop
service postgresql stop
#Do the same for rack, not sure what the service is called.
zip -r /tmp/all_needed.zip /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ /home/kerrick/ /var/lib/mysql/ # etc.
mail -s "test" yourmail@yourdomain.com < /tmp/all_needed.zip
rm -f /tmp/all_needed.zip
[ -f /etc/redhat-release ] && service httpd start
[ -f /etc/debian_version ] && service apache2 start
service mysqld start
service postgresql start
#Do the same for rack, not sure what the service is called.
При необходимости запустите его как cron. Но на самом деле было бы лучше, например, scp или ftp, а не по электронной почте, так как zip-пакет может быть слишком большим и не может быть отправлен в виде вложения.
Самым простым, конечно, будет bash-скрипт, работающий как cron, содержащий:
service
команда или /etc/init.d
вызовы сценарияtar
команды для создания архивов файлов, которые вы хотите сжать - поместите архивы во временный каталог, например / tmpКроме того, вы можете вставлять команды «инструментирования» между всеми этапами, записывая их в (настраиваемый) файл журнала или на сервер системного журнала.