View previous topic :: View next topic |
Author |
Message |
fallow Bodhisattva
Joined: 08 Jan 2004 Posts: 2208 Location: Poland
|
|
Back to top |
|
|
fallow Bodhisattva
Joined: 08 Jan 2004 Posts: 2208 Location: Poland
|
Posted: Mon Jan 17, 2005 11:55 am Post subject: Re: Przydatne Skrypty na polskim forum |
|
|
Opis : Pokazuje progress kompilacji pakietow via emerge
Autor : Gherald
Code: |
#!/bin/bash
#eprogress v0.0.1, July 13, 2004
#When given a package name this scipt is will track the progress of an ebuild by counting the number of .c and .cpp files in the portage temp directory and comparing it to the number of .o files that have been compiled so far.
#When run without arguements it's useful for locating previous failed or interrupted ebuilds so they can be attempted again or deleted manually to free space.
cd /var/tmp/portage
printf "%40s%8s%8s%8s%9s" "PACKAGE" "TOTAL" "LEFT" "DONE" "PERCENT"; echo
for i in $1*; do
A=`find $i/ -iname "*.c*" | wc -l`
if test $A -eq 0; then continue; fi
B=`find $i/ -iname "*.o*" | wc -l`
C=$[$A-$B]
D=`expr $B \* 100 / $A`
if test $D -gt 100; then D="??"; fi
printf "%40s%8s%8s%8s%7s" "$i" "$A" "$C" "$B" "$D"; echo
done
|
poprawka by bartmasz wrote: | Proponuje zamienic przedostatnia linijke
Code: | printf "%40s%8s%8s%8s%7s" "$i" "$A" "$C" "$B" "$D"; echo |
na nastepujaca
Code: | printf "%40s%8s%8s%8s%7s" "$i" "$A" "$C" "$B" "$D"; echo; break |
co pomaga pozbyc sie smieci na koncu skryptu, np.:
find: server.crt/: Nie jest katalogiem
find: server.key/: Nie jest katalogiem |
_________________ "Time is a companion that goes with us on a journey. It reminds us to cherish each moment, because it will never come again. What we leave behind is not as important as how we have lived" J-L. Picard
Last edited by fallow on Wed Jan 26, 2005 7:59 pm; edited 1 time in total |
|
Back to top |
|
|
nelchael Retired Dev
Joined: 20 Mar 2004 Posts: 1948 Location: /dev/drzewo
|
Posted: Mon Jan 17, 2005 7:19 pm Post subject: |
|
|
Opis: pokazuje niepotrzebne pliki w /etc/
Autor: Nelchael
Code: | #!/bin/bash
BASH_COLOR_RESET="\e[0m"
BASH_COLOR_GREEN="\e[01;32m"
BASH_COLOR_RED="\e[01;31m"
FILES_OK=0
FILES_BAD=0
FILES_TOTAL=0
for i in `find /etc -type f | sort`; do
echo -n "Checking \"${i}\"... "
# Check
jest="`grep -Hr \"${i}\" /var/db/pkg/* | head -n 1 | cut -d ':' -f 1 | sed -e 's,/CONTENTS,,g' -e 's,/var/db/pkg/,,g'`"
FILES_TOTAL=$(($FILES_TOTAL + 1))
if [ "x${jest}" = "x" ]; then
echo -en "${BASH_COLOR_RED}NOT FOUND${BASH_COLOR_RESET}"
FILES_BAD=$(($FILES_BAD + 1))
else
echo -en "${BASH_COLOR_GREEN}ok${BASH_COLOR_RESET} (${jest})"
FILES_OK=$(($FILES_OK + 1))
fi
echo
done
echo "Files: ${FILES_TOTAL} Valid: ${FILES_OK} Unknown: ${FILES_BAD}" |
_________________ [color=gray:17697d0166]http://dev.gentoo.org/~nelchael/[/color:17697d0166]
[size=14:17697d0166]>> [b:17697d0166]Zasady na f.g.o->Polish[/b:17697d0166] <<[/size:17697d0166] |
|
Back to top |
|
|
fallow Bodhisattva
Joined: 08 Jan 2004 Posts: 2208 Location: Poland
|
Posted: Wed Feb 02, 2005 7:12 pm Post subject: |
|
|
skypt sluzacy do latwej , przyjemnej zmiany io schedulera dla danego urzadzenia
Autor : Genn
Code: |
#!/bin/bash
###***Authored by Genn***###
##E-Mail: TheWindRider@myrealbox.com
#Last Update: 1/18/05
#This script was created to change the currently used scheduler
#under the vivid-sources kernel.
#(http://forums.gentoo.org/viewtopic.php?p=1337010, maintained by fallow and troll)
#There are probably other kernels that could use this script as
#well, but I'm not aware of them.
#This script must be executable. If it does not work
#'chmod 700 *this_script*' should do it.
#You can supply one optional arguement with this script.
#'script_name block-device' will run the script with the
#intend to interactively change the scheduler on the
#block device you specify. The block device is just the
#last portion of the device address without slashes.
#IE, if you wanted to adjust the schedular on /dev/hda,
#you would run 'this_script hda' and follow the on-screen
#instructions.
#Now, I say the arguement is optional because you are
#requred to set the DEFAULT_DRIVE variable to a valid block
#device. So, if you do not supply the arguement, the script
#will use that block-device. The variable is set by the
#same rules that the arguement is supplied by; just use the
#last portion of the address with no slashes.
#And for those of you wondering where the variable is,
DEFAULT_DRIVE=hda
#Now you've done everything you need to, go run the script,
#and ignore everything from here down.
##########################################################
#Verification of a valid default block device choice.
if [ -z `ls /sys/block | grep $DEFAULT_DRIVE` ]
then
echo "You chose a non-valid block device as default."
echo "/dev/$DEFAULT_DRIVE does not exist."
echo "Please change the variable DEFAULT_DRIVE in the script."
exit
fi
#Verification of root level access
ROOT_UID=0
ERR_NOTROOT=67
if [ "$UID" != "$ROOT_UID" ]
then
echo "You must be root to run this script."
exit $ERR_NOTROOT
fi
#If an arguement is supplied this makes sure it is used.
#Or if none is supplied it uses the default choice.
if [ -n "$1" ]
then
if [ -n `ls /sys/block | grep $1` ]
then
echo "Now using /dev/$1 for block device."
DRIVE=$1
else
echo "You chose a non-valid block device."
echo "/dev/$1 does not exist."
exit 1
fi
else
echo "No arguement supplied."
echo "Defaulting to /dev/${DEFAULT_DRIVE} for block device."
DRIVE=${DEFAULT_DRIVE}
fi
#Schedular file location
SCHEDLOC=/sys/block/${DRIVE}/queue/scheduler
#Verification of valid scheduler location
if [ `[ -f ${SCHEDLOC} ]` ! -a `[ -w ${SCHEDLOC} ]` ]
then
echo "Uh oh, either $SCHEDLOC is not a file, or you do not "
echo "have write access to it. I would suggest you verify"
echo "that the location listed above is correct and that the "
echo "value in the script did not get altered somewhow. The "
echo "standard location is: "
echo "/sys/block/{some_block_device}/queue/scheduler. If it "
echo "is valid, try echoing something by hand to "
echo "$SCHEDLOC. If you're "
echo "sure your using the right kernel, and none of that works, "
echo "make a post in the vivid-sources thread. On the other "
echo "hand, if echoing by hand does work, send me an e-mail as "
echo "you just discovered a bug."
exit 1
fi
#Identification of different available schedulers.
SCHED1=`cat ${SCHEDLOC} | gawk '{print $1}'`
SCHED2=`cat ${SCHEDLOC} | gawk '{print $2}'`
SCHED3=`cat ${SCHEDLOC} | gawk '{print $3}'`
SCHED4=`cat ${SCHEDLOC} | gawk '{print $4}'`
#User Interface portion
echo "List of available schedulers"
echo "The bracketed choice is the one currectly in use."
echo "Selecting this one does nothing."
echo "1 - ${SCHED1}"
echo "2 - ${SCHED2}"
echo "3 - ${SCHED3}"
echo "4 - ${SCHED4}"
echo " "
echo "Please type the number corresponding the scheduler you wish to use."
#This applies the selected change
read CHOICE
case ${CHOICE} in
1)
echo "$SCHED1" > $SCHEDLOC
NEWSCHED=${SCHED1}
;;
2)
echo "$SCHED2" > $SCHEDLOC
NEWSCHED=${SCHED2}
;;
3)
echo "$SCHED3" > $SCHEDLOC
NEWSCHED=${SCHED3}
;;
4)
echo "$SCHED4" > $SCHEDLOC
NEWSCHED=${SCHED4}
;;
*)
echo "You must input a numerical value corresponding to one of the not-in-use schedulers."
exit 1
;;
esac
#Error catching if the current scheduler is chosen.
VALIDATE=`echo $NEWSCHED | grep -F '['`
if [ "${VALIDATE}" != "" ]
then
echo "You just chose the scheduler currently in use."
exit 1
fi
echo " "
#Announcement of what schedular was selected for which drive.
echo "Schedular changed to $NEWSCHED on /dev/${DRIVE}"
exit 0
|
_________________ "Time is a companion that goes with us on a journey. It reminds us to cherish each moment, because it will never come again. What we leave behind is not as important as how we have lived" J-L. Picard |
|
Back to top |
|
|
fallow Bodhisattva
Joined: 08 Jan 2004 Posts: 2208 Location: Poland
|
Posted: Tue Feb 08, 2005 6:35 pm Post subject: |
|
|
Gentoo Linux Cron Update
Autor: Michael Panhorst
Oryginalny post: https://forums.gentoo.org/viewtopic.php?p=1304452#1304452
Wymagania: mailx, esearch, gentoolkit
Sposób instalacji: Najprostszy - umieszczenie skryptu w katalogu /etc/cron.weekly, inny - umieszczenie w crontabie.
Opis: Skrypt służy do automatycznego synchronizowania komputera(zalecane raz na tydzień - chodzi głównie o obciążenie serwerów rsync)
Co robi skrypt:
1. emerge sync
2. fixpackages, jeśli trzeba
3. Sprawdzenie GLSA
4. Jeśli wystąpiły błędy przy emerge sync albo są nowe GLSA, skrypt wysyła email z informacją
5. Sprawdzenie czy są nowe wersje (emerge system or emerge world)
6. Paczkowanie nowych wersji jeśli spełnione są zależności(emerge -B)
7. Wysłanie emaila (jeśli są pakiety do zaktualizowania), a także informacji w jaki sposób tego dokonać (używając juz skompilowanych paczek - emerge -avK)
Code: | #!/bin/bash
#
#
# glcu - gentoo linux cron update
# script for keeping your Gentoo linux up to date
#
# Version 0.65 - written by Michael Panhorst - Michael [at] untiefe [dot] de
#
# put this script in the /etc/cron.weekly directory
# You need to have mailx, esearch and gentoolkit emerged
# Set your eMail address first:
EMAILADRESS=root
# set if you want to test (and build) emerge 'system' or 'world'
UPDATE=system
################################################################
# You shouldn't need to change anything below this line
PKGDIR="/usr/portage/packages"
source /etc/make.conf # in case you set PKGDIR different
SUBJECT="glcu: New ebuilds for emerge $UPDATE on $HOSTNAME"
FS=""
EXTRA=""
# 1. emerge sync ############## (sync first) ####################
emerge sync 2>/tmp/emergesync.$$
# and run fixpackages (if needed)
grep "Skipping packages. Run 'fixpackages' or set it in FEATURES" /tmp/emergesync.$$
if [ $? == 0 ]
then
echo "" >>/tmp/ecdep.$$
echo "Running fixpackages" >>/tmp/ecdep.$$
echo "" >>/tmp/ecdep.$$
fixpackages 2>>/tmp/ecdep.$$
echo "" >>/tmp/ecdep.$$
fi
# 2. update database for esearch ################################
eupdatedb 2>>/tmp/emergesync.$$
# 3. glsa-check - check for security updates ####################
glsa-check -l -n|grep " \[N\] " >/tmp/eupdate.$$
if [ $? == 0 ]
then
echo "" >>/tmp/emergesync.$$
echo "----------------------------------------------------------------------" >>/tmp/emergesync.$$
echo "Important Security updates for $HOSTNAME:" >>/tmp/emergesync.$$
echo "" >>/tmp/emergesync.$$
cat /tmp/eupdate.$$ >> /tmp/emergesync.$$
echo "" >>/tmp/emergesync.$$
echo "" >>/tmp/emergesync.$$
echo "*** Run 'glsa-check --fix new' to auto-apply all security updates" >>/tmp/emergesync.$$
echo " ====================" >>/tmp/emergesync.$$
echo "" >>/tmp/emergesync.$$
echo "----------------------------------------------------------------------" >>/tmp/emergesync.$$
FS="- SECURITY UPDATES!"
fi
# only send a mail if errors ocurred
if [ -s /tmp/emergesync.$$ ]
then
if [ -s /tmp/ecdep.$$ ]
then
cat /tmp/ecdep.$$ >> /tmp/emergesync.$$
fi
cat /tmp/emergesync.$$ | mail -s "glcu($HOSTNAME): emerge sync $FS" $EMAILADRESS
fi
# 4. emerge -pv system/world (check for needed/new ebuilds) ###
emerge --pretend --deep $UPDATE > /tmp/eupdate.$$ 2>&1
# prebuild (emerge --buildpkgonly) all needed packages
grep ebuild /tmp/eupdate.$$
if [ $? == 0 ]
then
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" >> /tmp/ecdep.$$
echo "List of new Packages:" > /tmp/ecdep.$$
echo "---------------------" >> /tmp/ecdep.$$
grep ebuild /tmp/eupdate.$$ >> /tmp/ecdep.$$
echo "---------------------------------------------------------------------" >> /tmp/ecdep.$$
for package in `cat /tmp/eupdate.$$ | grep ebuild | cut -f 2- -d "/" | cut -f 1 -d " "` ;
do
if [ ! -f $PKGDIR/All/$package.tbz2 ]
then
echo "" >> /tmp/ecdep.$$
echo "Building binary package for $package :" >> /tmp/ecdep.$$
emerge --pretend --buildpkgonly --oneshot =$package > /tmp/eupdate.$$
if [ ` grep -c ebuild /tmp/eupdate.$$ ` == 1 ]
then
nice -n +19 emerge --buildpkgonly --oneshot =$package 2>> /tmp/ecdep.$$
if [ $? == 0 ]
then
PACKAGES="$PACKAGES =$package"
else
echo "" >> /tmp/ecdep.$$
echo " *** Error while building $package!" >> /tmp/ecdep.$$
SUBJECT="glcu: DEPENDENCY PROBLEM, COULDN'T PREBUILD ALL PACKAGES ON $HOSTNAME"
DEP=1
fi
else
echo " *** Dependencies for $package not met." >> /tmp/ecdep.$$
echo " *** Cannot prebuilt $package!" >> /tmp/ecdep.$$
SUBJECT="glcu: DEPENDENCY PROBLEM, COULDN'T PREBUILD ALL PACKAGES ON $HOSTNAME"
DEP=1
fi
fi
done
echo "New packages for 'emerge $UPDATE'!" > /tmp/glcu.$$
echo " =============" >> /tmp/glcu.$$
echo "" >> /tmp/glcu.$$
if [ -n "$PACKAGES" ]
then
echo "To update your gentoo linux, execute:" >> /tmp/glcu.$$
echo "" >> /tmp/glcu.$$
echo " emerge -avK $PACKAGES" >> /tmp/glcu.$$
echo "" >> /tmp/glcu.$$
EXTRA=further
SEND=1
fi
if [ $DEP ]
then
echo "check for $EXTRA packages with:" >> /tmp/glcu.$$
echo "" >> /tmp/glcu.$$
echo " emerge -av $UPDATE" >> /tmp/glcu.$$
echo "" >> /tmp/glcu.$$
SEND=1
fi
cat /tmp/ecdep.$$ >> /tmp/glcu.$$
# send mail, how to update the system
if [ $SEND ]
then
cat /tmp/glcu.$$ | mail -s "$SUBJECT" $EMAILADRESS
fi
# rm all used files
rm /tmp/glcu.$$
fi
rm /tmp/emergesync.$$ /tmp/eupdate.$$ /tmp/ecdep.$$ |
_________________ "Time is a companion that goes with us on a journey. It reminds us to cherish each moment, because it will never come again. What we leave behind is not as important as how we have lived" J-L. Picard |
|
Back to top |
|
|
fallow Bodhisattva
Joined: 08 Jan 2004 Posts: 2208 Location: Poland
|
Posted: Wed Feb 09, 2005 3:34 pm Post subject: |
|
|
Find old distfiles
Autor: Konstantin Shaposhnikov
Opis: Wyszukuje i wyświetla stare i potencjalnie niepotrzebne już pliki znajdujące się w distfiles
Code: | #!/bin/bash
function create_portage_list() {
find $1 -path '*files/digest-*' -type f | xargs -n1 awk '{print $3}' > $2
}
echo "Finding portage distfiles ... "
create_portage_list /usr/portage /tmp/portage-distfiles1
echo "Finding port overlay distfiles ... "
create_portage_list `portageq portdir_overlay` /tmp/portage-distfiles2
echo "Sorting list of distfiles ... "
cat /tmp/portage-distfiles{1,2} | sort > /tmp/portage-distfiles
rm /tmp/portage-distfiles{1,2}
echo "Finding local distfiles ... "
find /usr/portage/distfiles/ -type f | xargs -n1 basename | sort > /tmp/local-distfiles
comm -1 -3 /tmp/portage-distfiles /tmp/local-distfiles
|
_________________ "Time is a companion that goes with us on a journey. It reminds us to cherish each moment, because it will never come again. What we leave behind is not as important as how we have lived" J-L. Picard |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|