Advertisement
Guest User

automount

a guest
Feb 3rd, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.95 KB | None | 0 0
  1. #!/bin/sh
  2. amn="AutoMount"
  3. logger -t "$amn" "Started."
  4. [ -f /etc/config/automount ] || echo "mnt_label='mnt'
  5. am='Enabled'
  6. as='Enabled'
  7. atr='Enabled'
  8. adlna='Enabled'">/etc/config/automount
  9. . /etc/config/automount
  10. share_dir='/share'
  11. mnt_dir='/mnt'
  12. current=$(egrep -o "/dev/sd[a-z]*[0-9]*|/dev/mmcblk[0-9]*p[0-9]*" /proc/mounts /proc/swaps | cut -d: -f2- | tr '\n' '|' | sed "s/|$//")
  13. [ "$current" ] || current="ˇ^˘"
  14. blkids=`blkid | egrep -v "$current" | egrep "/dev/sd[a-z]*[0-9]*|/dev/mmcblk[0-9]*p[0-9]*"`
  15. runchk(){
  16. ps | grep -i "$1" | grep -v grep
  17. }
  18. DL_dir=`grep download_dir /etc/config/transmission | sed "s|.*dir ||" | tr -d "'\""`
  19. DLNA_dir=`grep media_dir /etc/config/minidlna | sed "s|.*dir ..,||;s|.*dir .||" | tr -d "\"'"`
  20. [ "$am" != "Enabled" -a "$as" != "Enabled" ] && exit 0
  21. echo "run">/tmp/usb_pnp_run
  22. if [ "$share_dir" != "/" ];then
  23. for i in `ls "$share_dir" | egrep -v "$(mount |grep "$share_dir" |sed "s|.*$share_dir/||;s| type.*||" | tr '\n' '|' | sed "s/|$//")"`
  24. do
  25.     rmdir "$share_dir/$i"
  26.     logger -t "$amn" "$share_dir/$i directory removed."
  27.     kill=1
  28. done
  29. fi
  30. for j in `echo "$blkids" | egrep -o "/dev/sd[a-z]*[0-9]*|/dev/mmcblk[0-9]*p[0-9]*"`
  31.     do
  32.     label=`echo "$blkids" | grep "$j.*LABEL" | sed 's/.* LABEL=.//;s/" .*//'`
  33.     type=`echo "$blkids" | grep "$j.*TYPE" | sed 's/.* TYPE=.//;s/" .*//'`
  34.     uuid=`echo "$blkids" | grep "$j.*UUID" | sed 's/.* UUID=.//;s/" .*//'`
  35.     if [ "$type" != "swap" -a "$am" = "Enabled" ];then
  36.     [ "$type" = "ntfs" ] && opt="-o big_writes"
  37.         if [ ! "`mount | grep $j`" ];then
  38.             if [ "$(echo "#$label#$uuid#" |grep "#$mnt_label#")" -a ! "`mount | grep -w "$mnt_dir"`" -a "$mnt_label" ];then
  39.                 mount $opt "$j" "$mnt_dir"
  40.                 logger -t "$amn" "$label mounted to $mnt_dir."
  41.             else
  42.                 [ ! "`mount | grep -vw "$mnt_dir" | grep "$label"`" -a "$label" ] || label="$uuid"
  43.                 mkdir -p "$share_dir/$label"
  44.                 mount $opt "$j" "$share_dir/$label"
  45.                 logger -t "$amn" "$label mounted to $share_dir/$label."
  46.             fi
  47.         fi
  48.     elif [ "$as" = "Enabled" -a ! "`grep "$j" /proc/swaps`" ];then
  49.         swapon "$j"
  50.     fi
  51. done
  52. if [ "$kill" ];then
  53.     [ ! -d "$DL_dir" -a "`runchk transmission`" ] && /etc/init.d/transmission stop && logger -t "$amn" "Transmission stopped." && echo 1 >/tmp/pnp_tr
  54.     if [ "`runchk minidlna`" ];then
  55.         for i in $DLNA_dir;do
  56.             [ ! -d "$i" ] && stop=1 || stop2=1
  57.         done
  58.         [ "$stop" -a ! "$stop2" ] && killall minidlna && logger -t "$amn" "miniDLNA stopped." && echo 1 >/tmp/pnp_dlna
  59.     fi
  60. fi
  61. echo "stop">/tmp/usb_pnp_run
  62. if [ "$blkids" ] && [ -f /tmp/pnp_dlna -o -f /tmp/pnp_tr ];then
  63.     [ "$atr" = "Enabled" -a ! "`runchk transmission`" -a -d "$DL_dir" ] && logger -t "$amn" "Transmission started." && etc/init.d/transmission restart && rm /tmp/pnp_tr
  64.     if [ "$adlna" = "Enabled" -a ! "`runchk minidlna`" ];then
  65.         for i in $DLNA_dir;do
  66.             [ -d "$i" ] && dlnas=1
  67.         done
  68.         [ "$dlnas" = "1" ] && logger -t "$amn" "miniDLNA started." && etc/init.d/minidlna restart && rm /tmp/pnp_dlna
  69.     fi
  70. fi
  71. logger -t "$amn" "Stopped."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement