Я написал этот сценарий,
#!/bin/bash
#if not root, run as root
if (( $EUID != 0 )); then
sudo $0
exit
fi
apt update
echo
echo ">> Upgrading Packages"
apt -y upgrade
echo
echo ">> Upgrading Distro Packages"
apt -y dist-upgrade
echo
apt clean
echo ">> Performing Autoremove"
apt -y autoremove
dpkg --list |grep "^rc"
if [[ $? -eq 0 ]]
then echo
echo ">> Purging Old Configuration Files"
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
fi
if [[ `du -m /var/log/syslog | cut -f1` -gt 99 ]]
then echo ">> syslog is over 100MB"
echo ">> logs can be rotated using the following command:"
echo
echo sudo logrotate -f /etc/logrotate.conf
echo
echo ">> let me go ahead and do that for you"
logrotate -f /etc/logrotate.conf
fi
echo ">> Done."
Цель — создать единый центр для обновления всего и удаления ненужных пакетов.
Достаточно ли вышеперечисленного? Есть ли в этом что-то лишнее или ненужное? Какие-либо опасности/предостережения, которые необходимо учитывать? Другое (заполните пробел)?
Редактировать: Если я использую только встроенный менеджер обновлений Ubuntu 12.04, будут ли какие-либо файлы очищены и автоматически удалены?
решение1
В принципе, да. Однако, как отметил AsheeshR в своем комментарии, он прервется, если будет сделано что-то «нежелательное». Чтобы убедиться, что это работает каждый раз, можно добавить опцию --force-yes, но, ПОЖАЛУЙСТА, ПРОЧИТАЙТЕ СТРАНИЦУ MAN. Реализовать эту опцию ОЧЕНЬ опасно, поэтому вам, вероятно, следует придерживаться того, что у вас есть сейчас. Фактически, страница man по apt-get говорит, что эта опция «может сломать вашу систему», поэтому вы должны использовать ее вручную, только если вышеперечисленное не сработало и только в очень особых (и редких) ситуациях.
решение2
Это скрипт, который я использую для выполнения обновлений на Debian (тестирование) и Ubuntu:
#!/bin/bash
apt update
apt -y dist-upgrade
apt -y autoremove
apt clean
apt purge -y $(dpkg -l | awk '/^rc/ { print $2 }')
В основном он включает в себя дополнительно к вашему сценарию:
apt purge -y $(dpkg -l | awk '/^rc/ { print $2 }')
которыйудаляет файлы конфигурации пакетаи помогает экономить место.
Мне нравится ваш раздел # если не root, запускать как root и я думаю, что я его украду :-)
За последние годы у меня никогда не было инцидентов, когда я запускал этот скрипт ежедневно. Они случались, но очень редки и легко исправимы.
Недавно я обнаружил следующее:
apt -y dist-upgrade --auto-remove --purge
что предполагает, что некоторые команды можно объединить в строку, но я в этом не уверен.
Менеджер обновлений Ubuntu — этоболее вовлеченныйкажется.