나는 이 대본을 썼다.
#!/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 옵션을 추가하되 매뉴얼 페이지를 읽는 것입니다. 이 옵션을 구현하는 것은 매우 위험하므로 현재 가지고 있는 옵션을 고수해야 합니다. 실제로 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 }')
어느패키지 구성 파일 삭제공간을 절약하는 데 도움이 됩니다.
나는 당신의 #루트가 아닌 경우 루트 부분으로 실행하는 것을 좋아합니다. 나는 그것을 훔칠 것이라고 생각합니다 :-)
나는 지난 몇 년간 매일 이 스크립트를 실행해 왔지만 한 번도 사건이 발생하지 않았습니다. 이런 일이 발생하지만 매우 드물고 수정하기 쉽습니다.
나는 최근에 이것을 발견했습니다:
apt -y dist-upgrade --auto-remove --purge
이는 일부 명령을 한 줄로 결합할 수 있음을 의미하지만 확실하지는 않습니다.
우분투 업데이트 관리자는더 많이 참여하다것 같다.