alkisg Δημοσ. 28 Αυγούστου 2009 Share Δημοσ. 28 Αυγούστου 2009 Η δύναμη της κονσόλας: @Technology_fan: sed 's/'$1'/'$2'/' aout.txt > bout.txt μπορεί να γραφεί καλύτερα ως ==> sed "s/$1/$2/" aout.txt > bout.txt Για τη δεύτερη ερώτηση, αν υπάρχουν ειδικοί χαρακτήρες ([]/...) ένας τρόπος είναι να τους περάσεις από κάποια δική σου συνάρτηση που θα τους κάνει "escape", δηλαδή θα τους προσθέτει το \ μπροστά τους. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
DIMITRISG Δημοσ. 28 Αυγούστου 2009 Share Δημοσ. 28 Αυγούστου 2009 καταπληκτικό το script για να κουναει το μωρο και περιμενω παιδι σε λίγο Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 28 Αυγούστου 2009 Share Δημοσ. 28 Αυγούστου 2009 καταπληκτικό ευχαριστούμε alkisg DIMITRISG με το καλό ! . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
suser Δημοσ. 28 Αυγούστου 2009 Share Δημοσ. 28 Αυγούστου 2009 Έγραψε, alkisg!! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Technology fan Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 Έχω γράψει ένα σκριπτάκι το οποίο κατα κάποιο τρόπο μου ταξινομεί τις ταινίες ανα χρονολογική σειρά αρκεί οι ταινίες να περιέχουν στο όνομα τους μία χρονολογία από το 2001 εώς 2009. Επίσης αν η ταινία είναι .avi φτιάχνει φτιάχνει ένα φάκελο αν δεν υπάρχει ήδη και βάζει μέσα του τη ταινία. Μπορεί κάποιος να μου πει αν γίνεται και πως να εκτελέιται αυτόματα με το που τοποθετείται μία ταινία στο directory, παραθέτω το σκριπτάκι για όποιον φανεί χρήσιμο... >#!/bin/bash ls |grep avi > aout.txt sed 's/.avi//' aout.txt > bout.txt # allazei to aout.txt kai to bazei sto bout.txt sbinontas to .avi sto telos cat bout.txt | while read line ## metakinei to avi ston antistoixo fakelo do echo "metakinitai to " $line.avi "...." mkdir "$line" mv "$line.avi" "$line" done rm aout.txt for i in 2001 2002 2003 2004 2005 2006 2007 2008 2009 do ls |grep $i > aout.txt cat aout.txt | while read line do if [ "$line" != "$i" ] then mv "$line" "$i" fi done rm aout.txt done rm bout.txt Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
NullScan Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 Χρησιμοποίησε την watch με παράμετρο το directory που θέλεις και τρέξτην στο background ή μέσω του start-stop-daemon με ένα custom init script. man watch για περισσότερες λεπτομέρειες. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Technology fan Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 (επεξεργασμένο) ενδιαφέρον το watch αλλα δε ξέρω το να τρέχει συνέχεια μου φαίνεται κάπως χαζό..Και εξάλλου δε θα χει πρόβλημα αν ακόμα η ταινία μετακινείται? πώς θα πω να ελεγθέι πρώτα αν ολοκληρώθηκε η μεταφορά και μετά να το τρέξει! το start-stop-daemon μου θυμίζει πολύ λειτουργικά και φασαρίες με διεργασίες... κανα παράδειγμα με τη watch μπορεί να δείξει κανείς? και πως θα συνδέσω και το αντίστοιχο σκριπτάκι? Επεξ/σία 4 Σεπτεμβρίου 2009 από Technology fan Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nske Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 (επεξεργασμένο) Ο πιο αποδοτικός τρόπος για αυτό πρέπει να είναι μέσω του kernel Inotify. Υπάρχουν libraries για Python/Perl/Ruby, αλλά εναλλακτικά μπορείς και να παρακολουθείς την έξοδο της inotifywait (συμπεριλαμβάνεται στα inotify-tools), από ένα shell script με μια while, και να εκτελείς το script σου όταν τυπωθούν κάποια events (π.χ. CLOSE_WRITE) Επεξ/σία 4 Σεπτεμβρίου 2009 από nske Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
DIMITRISG Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 Έχω την εντύπωση ότι από τότε που άρχισα να ασχολούμαι με το linux έχει αυξηθεί η παρατηρητικότητά μου. λογω case sensitive μαλλον Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 4 Σεπτεμβρίου 2009 Share Δημοσ. 4 Σεπτεμβρίου 2009 Και ο αντίστοιχος cron δαίμονας για το inotify, για απλή χρήση με scripts: http://www.howtoforge.com/triggering-commands-on-file-or-directory-changes-with-incron Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 5 Σεπτεμβρίου 2009 Share Δημοσ. 5 Σεπτεμβρίου 2009 (επεξεργασμένο) Κάτι scripts που χρησιμοποιώ για τον τοπικό mirror της διανομής και ένα άλλο για backup από live cd. > #!/bin/bash Black='\e0;30m' Blue='\e0;34m' Green='\e0;32m' Cyan='\e0;36m' Red='\e[0;31m' Purple='\e[0;35m' Brown='\e[0;33m' Light_Gray='\e[0;37m' Dark_Gray='\e[1;30m' Light_Blue='\e[1;34m' Light_Green='\e[1;32m' Light_Cyan='\e[1;36m' Light_Red='\e[1;31m' Light_Purple='\e[1;35m' Yellow='\e[1;33m' White='\e[1;37m' No_Color='\033[0m' #Checking if user running the script is root. # Comment out the lines below. #Start here if [ `id -u` = 0 ]; then echo echo -e "${Yellow}You are running this script as root. I dont want so." echo -e "You have to comment out the code that implements the check.${No_Color}" echo exit 1 fi #Stop here # Filesystem locations for the sync operations SYNC_HOME="/mnt/storage1/arch" SYNC_LOGS="$SYNC_HOME/logs" SYNC_EXTRA="$SYNC_HOME/extra/os/i686/" SYNC_CORE="$SYNC_HOME/core/os/i686/" SYNC_COMMUNITY="$SYNC_HOME/community/os/i686/" SYNC_LOCK="/tmp/mirrorsync.lck" # Bandwidth Limit variable BAND_LIMIT=$1 # Set the rsync server to use # Only official public mirrors are allowed to use rsync.archlinux.org # SYNC_SERVER=rsync.archlinux.org::ftp #SYNC_SERVER=rsync://distro.ibiblio.org/distros/archlinux SYNC_SERVER=rsync://mirror.rit.edu/archlinux #SYNC_SERVER=rsync://mirror.archlinux.fi/archlinux #SYNC_SERVER=rsync://ftp.sh.cvut.cz/arch SYNC_SERVER=rsync://mirror.umoss.org/archlinux #SYNC_SERVER=rsync://mir1.archlinuxfr.org/archlinux SYNC_SERVER=rsync://mirror.cs.vt.edu/archlinux # Set the format of the log file name # This example will output something like this: sync_20070201-8.log LOG_FILE="pkgsync_$(date +%Y%m%d-%H).log" # Checking if bandwidth limit variable is a number greater than zero if [ ! -z $BAND_LIMIT ]; then if [ $BAND_LIMIT -eq $BAND_LIMIT > /dev/null 2>&1 ]; then if [ $BAND_LIMIT -ne 0 ]; then BAND_LIMIT="--bwlimit=$BAND_LIMIT" else echo -e "${Yellow}Bandwidth limit must be an integer number greater than zero (0)${No_Color}." exit 1 fi else echo -e "${Yellow}Bandwidth limit must be an intger number. For example 100 means 100 kBps limit.${No_Color}" exit 1 fi fi # Do not edit the following lines, they protect the sync from running more than # one instance at a time if [ ! -d $SYNC_HOME ]; then echo "$SYNC_HOME does not exist, please create it, then run this script again." exit 1 fi if [ -f $SYNC_LOCK ]; then echo "The sync failed. Check if websync is already running." echo "If not you must remove manually the file $SYNC_LOCK" exit 1 fi touch $SYNC_LOCK # End of non-editable lines # Create the log file and insert a timestamp touch "$SYNC_LOGS/$LOG_FILE" echo "=============================================" >> "$SYNC_LOGS/$LOG_FILE" echo ">> Starting sync on $(date --rfc-3339=seconds)" >> "$SYNC_LOGS/$LOG_FILE" echo -e ">> ---" >> "$SYNC_LOGS/$LOG_FILE" echo echo -e "${Light_Cyan}############################################" echo "#### ####" echo "#### Synchronizing Extra repository ####" echo "#### ####" echo -e "############################################${No_Color}" echo rsync -rptLv --partial --progress --delete-after --size-only --no-motd $BAND_LIMIT $SYNC_SERVER/extra/os/i686/ $SYNC_EXTRA echo echo -e "${Light_Red}############################################" echo "#### ####" echo "#### Synchronizing Core repository ####" echo "#### ####" echo -e "############################################${No_Color}" echo rsync -rptLv --partial --progress --delete-after --size-only --no-motd $BAND_LIMIT $SYNC_SERVER/core/os/i686/ $SYNC_CORE echo echo -e "${Light_Green}############################################" echo "#### ####" echo "#### Synchronizing Community repository ####" echo "#### ####" echo -e "############################################${No_Color}" echo rsync -rptLv --partial --progress --delete-after --size-only --no-motd $BAND_LIMIT $SYNC_SERVER/community/os/i686/ $SYNC_COMMUNITY #Insert another timestamp and close the log file echo ">> ---" >> "$SYNC_LOGS/$LOG_FILE" echo ">> Finished sync on $(date --rfc-3339=seconds)" >> "$SYNC_LOGS/$LOG_FILE" echo "=============================================" >> "$SYNC_LOGS/$LOG_FILE" echo "" >> "$SYNC_LOGS/$LOG_FILE" # Remove the lock file and exit rm -f "$SYNC_LOCK" exit 0 > #!/bin/bash Black='\e0;30m' Blue='\e0;34m' Green='\e0;32m' Cyan='\e0;36m' Red='\e[0;31m' Purple='\e[0;35m' Brown='\e[0;33m' Light_Gray='\e[0;37m' Dark_Gray='\e[1;30m' Light_Blue='\e[1;34m' Light_Green='\e[1;32m' Light_Cyan='\e[1;36m' Light_Red='\e[1;31m' Light_Purple='\e[1;35m' Yellow='\e[1;33m' White='\e[1;37m' No_Color='\033[0m' if [ ! `id -u` = 0 ]; then echo echo -e "${Yellow}This script should be run as root.${No_Color}" echo exit 1 fi # trap ctrl-c. trap ctrl_c INT function ctrl_c() { echo echo echo -e "${Yellow}Back up process terminated by user.${No_Color}" echo exit 1 } echo echo -e "${Yellow}Getting ready for the back up process.${No_Color}" echo #disk_bck_serial=`sdparm --quiet --page=sn /dev/sda | xargs -n 6 | awk '{ print $6}'` disk_bck="/dev/sdb1" disk_boot="/dev/sda3" disk_home="/dev/mapper/VolGroup00-lvolHome" disk_sys="/dev/mapper/VolGroup00-lvolSys" mnt_bck="/mnt/sdb1" mnt_boot="/mnt/boot" mnt_home="/mnt/home" mnt_sys="/mnt/sys" #Creating needed directories. if [ ! -d $mnt_bck ]; then echo "Creating /mnt/sdb1 directory" mkdir $mnt_bck echo else echo "Directory /mnt/sdb1 is already present" echo fi if [ ! -d $mnt_boot ]; then echo "Creating /mnt/boot directory" mkdir $mnt_boot echo else echo "Directory /mnt/boot is already present" echo fi if [ ! -d $mnt_home ]; then echo "Creating /mnt/home directory" mkdir $mnt_home echo else echo "Directory /mnt/home is already present" echo fi if [ ! -d $mnt_sys ]; then echo "Creating /mnt/sys directory" mkdir $mnt_sys echo else echo "Directory /mnt/sys is already present" echo fi #Enabling LVM support echo "Enabling LVM support" echo modprobe dm_mod vgchange -ay sleep 2 #Checking if disks exists. if [ ! -f $disk_boot ]; then echo -e "${Yellow}Disk $disk_boot is missing.${No_Color}" exit 1 fi if [ ! -f $disk_sys ]; then echo -e "${Yellow}Logical Voloume $disk_sys is missing.${No_Color}" exit 1 fi if [ ! -f $disk_home ]; then echo -e "${Yellow}Logical Voloume $disk_home is missing.${No_Color}" exit 1 fi #Mounting disks. #if [ ! $disk_bck_serial = 9VM11HL1 ]; then # echo -e ${Yellow} # echo "The serial number of destination disk is not the spected one" # read -p "Type yes to continue or no to exit: ${No_Color}" usr_resp_0 # echo # # if [ ! $usr_resp_0 = yes ]; then # echo # echo -e "${Yellow}Back up proccess terminated by user.${No_Color}" # echo # exit 1 # fi #fi mount -t auto $disk_bck $mnt_bck > /dev/null if ! mount | grep "$disk_bck on" > /dev/null; then echo echo -e "${Yellow}Could not mount $disk_bck.${No_Color}" echo exit 1 fi mount -t auto $disk_boot $mnt_boot > /dev/null if ! mount | grep "$disk_boot on" > /dev/null; then echo echo -e "${Yellow}Could not mount $disk_boot.${No_Color}" echo exit 1 fi mount -t auto $disk_home $mnt_home > /dev/null if ! mount | grep "$disk_home on" > /dev/null; then echo echo -e "${Yellow}Could not mount $disk_home.${No_Color}" echo exit 1 fi mount -t auto $disk_sys $mnt_sys > /dev/null if ! mount | grep "$disk_sys on" > /dev/null; then echo echo -e "${Yellow}Could not mount $disk_sys.${No_Color}" echo exit 1 fi echo -e ${Yellow} echo "Everything looks fine." read -p "Type yes to continue or no to exit." usr_resp_1 echo -e ${No_Color} if [ ! $usr_resp_1 = yes ]; then echo echo -e "${Yellow}Back up proccess terminated by user.${No_Color}" echo exit 1 fi echo echo -e "${Light_Red}############################################" echo "#### ####" echo "#### Starting back UP proccess ####" echo "#### ####" echo -e "############################################${No_Color}" echo echo -e ${Light_green} read -p "Please enter the date. E.g.: 31-12-2011" usr_date echo -e ${No_Color} cd /mnt echo echo -e "${Light_green}Backing up boot.${No_Color}" echo tar -cvpjf ../sdb1/backup_boot_$usr_date.tar.bz2 boot > /dev/null cd /mnt/sys echo echo -e "${Light_green}Backing up bin.${No_Color}" echo tar -cvpjf ../sdb1/backup_bin_$usr_date.tar.bz2 bin > /dev/null echo echo -e "${Light_green}Backing up dev.${No_Color}" echo tar -cvpjf ../sdb1/backup_dev_$usr_date.tar.bz2 dev > /dev/null echo echo -e "${Light_green}Backing up etc.${No_Color}" echo tar -cvpjf ../sdb1/backup_etc_$usr_date.tar.bz2 etc > /dev/null echo echo -e "${Light_green}Backing up lib.${No_Color}" echo tar -cvpjf ../sdb1/backup_lib_$usr_date.tar.bz2 lib > /dev/null echo echo -e "${Light_green}Backing up media.${No_Color}" echo tar -cvpjf ../sdb1/backup_media_$usr_date.tar.bz2 media > /dev/null echo echo -e "${Light_green}Backing up mnt.${No_Color}" echo tar -cvpjf ../sdb1/backup_mnt_$usr_date.tar.bz2 mnt > /dev/null echo echo -e "${Light_green}Backing up opt.${No_Color}" echo tar -cvpjf ../sdb1/backup_opt_$usr_date.tar.bz2 opt > /dev/null echo echo -e "${Light_green}Backing up root.${No_Color}" echo tar -cvpjf ../sdb1/backup_root_$usr_date.tar.bz2 root > /dev/null echo echo -e "${Light_green}Backing up sbin.${No_Color}" echo tar -cvpjf ../sdb1/backup_sbin_$usr_date.tar.bz2 sbin > /dev/null echo echo -e "${Light_green}Backing up srv.${No_Color}" echo tar -cvpjf ../sdb1/backup_srv_$usr_date.tar.bz2 srv > /dev/null echo echo -e "${Light_green}Backing up sys.${No_Color}" echo tar -cvpjf ../sdb1/backup_sys_$usr_date.tar.bz2 sys > /dev/null echo echo -e "${Light_green}Backing up usr.${No_Color}" echo tar -cvpjf ../sdb1/backup_usr_$usr_date.tar.bz2 usr > /dev/null echo echo -e "${Light_green}Backing up var.${No_Color}" echo tar -cvpjf ../sdb1/backup_var_$usr_date.tar.bz2 var > /dev/null cd /mnt echo echo -e "${Light_green}Backing up home.${No_Color}" echo tar -cvpjf ../sdb1/backup_home_$usr_date.tar.bz2 home > /dev/null echo echo -e "${Light_Red}############################################" echo "#### ####" echo "#### Back up process complited ####" echo "#### ####" echo -e "############################################${No_Color}" echo exit 0 Επεξ/σία 19 Σεπτεμβρίου 2009 από firewalker Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
alkisg Δημοσ. 7 Σεπτεμβρίου 2009 Share Δημοσ. 7 Σεπτεμβρίου 2009 Σκριπτ για την αφαίρεση των παλιών kernels. Λειτουργεί σε Ubuntu και υποθέτω ότι θα παίζει και σε Debian. > #!/bin/sh # Purges all kernels except for the active one active_kernel=`uname -r` # e.g. 2.6.28-15-generic active=${active_kernel%-*} # e.g. 2.6.28-15 echo "Current kernel: $active" # Trying to match e.g.: # linux-headers-2.6.31-8 # linux-headers-2.6.31-8-generic # linux-image-2.6.31-8-generic found_kernel="" to_remove="" while read state name version description do [ "$state" = 'ii' ] || continue version=${version%.*} # E.g. 2.6.28-15 without the .48 at the end if [ "$version" = "$active" ] then found_kernel="yes" continue fi to_remove="$to_remove $name" done <<EOF `dpkg -l 'linux-headers-2.*' 'linux-image-2.*'` EOF if [ -z "$found_kernel" ] then echo "Didn't find the current kernel $active_kernel in the list of the installed kernels! Aborting..." exit 1 fi if [ -z "$to_remove" ] then echo "No kernels to be removed." exit 0 fi sudo apt-get purge $to_remove Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
gtroza Δημοσ. 8 Σεπτεμβρίου 2009 Share Δημοσ. 8 Σεπτεμβρίου 2009 Σκριπτ για την αφαίρεση των παλιών kernels στα Ιωάννινα κυκλοφορεί και ο parsifal Ethiopian Review Ten Linux commands you can’t live without http://www.ethiopianreview.com/scitech/211 το ξέρω ότι τα ξέρετε. . Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
zen3 Δημοσ. 8 Σεπτεμβρίου 2009 Share Δημοσ. 8 Σεπτεμβρίου 2009 Στα Arch Forums έχει αυτό το πολύ ωραίο topic με scriptάκια των μελών: http://bbs.archlinux.org/viewtopic.php?id=56646&p=1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
firewalker Δημοσ. 18 Νοεμβρίου 2009 Share Δημοσ. 18 Νοεμβρίου 2009 (επεξεργασμένο) Δημιουργία video από εικόνες. Έστω ότι θέλουμε να φτιάξουμε ένα video από σταθερές εικόνες. Πάμε στον φάκελο με τις εικόνες και δήνουμε την εντολή: mencoder mf://*.jpg -mf fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:aspect=4/3 -o test.avi Παράγεται το αρχείο test.avi χωρίς ήχο. Αν θέλουμε να βάλουμε και ήχο: mencoder -ovc copy -audiofile temp.mp3 -oac copy temp.avi -of avi -o output.avi temp.mp3 είναι ο ήχος και output.avi το αρχείο με τον ήχο. Επεξ/σία 27 Νοεμβρίου 2009 από firewalker Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα