Maurizio4pastebin

my_tmpfs for FreeBSD - November 2011

Nov 14th, 2011
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.25 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # PROVIDE: my_tmpfs
  4. # REQUIRE: FILESYSTEMS
  5. # BEFORE:  DAEMON
  6. # KEYWORD: shutdown
  7. #
  8. # Add the following lines to /etc/rc.conf to enable my_tmpfs:
  9. #
  10. # my_tmpfs_enable="YES"
  11. #
  12. # Todo: Must be added nojail to KEYWORD ?
  13. #
  14. . /etc/rc.subr
  15.  
  16. name="my_tmpfs"
  17. rcvar=`set_rcvar`
  18. start_cmd="${name}_start"
  19. stop_cmd="${name}_stop"
  20.  
  21. load_rc_config $name
  22. eval "${rcvar}=\${${rcvar}:-'NO'}"
  23.  
  24.  
  25. # Change these backup directories. pool500gb is a pool on a 500GB HD.
  26. samba_backup=/pool500gb/misc/backups/my_tmpfs/samba
  27. varlog_backup=/pool500gb/misc/backups/my_tmpfs/var_log
  28. spamd_backup=/pool500gb/misc/backups/my_tmpfs/spamd
  29. my_tmpfs_dist=/pool500gb/misc/backups/my_tmpfs/my_tmpfs.dist
  30.  
  31. my_tmpfs_start()
  32. {
  33.     debug "$name: start"
  34.     /usr/sbin/mtree -deU -f $my_tmpfs_dist -p /var/spool > /dev/null
  35.     if [ -n "$samba_enable" ] && checkyesno samba_enable; then
  36.     debug "$name: samba enabled"
  37.     mkdir -p /var/log/samba /var/run/samba /var/db/samba \
  38.         /var/db/samba/perfmon /var/db/samba/printing
  39.     cp $samba_backup/*.tdb $samba_backup/group_mapping.ldb /var/db/samba
  40.     fi
  41.     if [ -n "$lighttpd_enable" ] && checkyesno lighttpd_enable; then
  42.     debug "$name: lighttpd enabled"
  43.     mkdir -p /var/log/lighttpd
  44.     chown www:www /var/log/lighttpd
  45.     fi
  46.     if [ -n "$openvpn_enable" ] && checkyesno openvpn_enable; then
  47.     debug "$name: openvpn enabled"
  48.     mkdir -p /var/log/openvpn
  49.     fi
  50.     if [ -n "$spamd_enable" ] && checkyesno spamd_enable; then
  51.     debug "$name: spamd enabled"
  52.     mkdir -p /var/run/spamd
  53.     chown spamd:spamd /var/run/spamd
  54.     /usr/local/bin/sa-learn --dbpath /var/spool/spamd/.spamassassin \
  55.         --restore $spamd_backup/.spamassassin/backup.txt
  56.     chown -R spamd:spamd /var/spool/spamd
  57.     fi
  58.     if [ -n "$named_enable" ] && checkyesno named_enable; then
  59.     debug "$name: named enabled"
  60.     mkdir -p /var/run/named
  61.     chown bind:bind /var/run/named
  62.     ln -s /var/named/var/run/named/pid /var/run/named/pid
  63.     fi
  64. }
  65.  
  66. my_tmpfs_stop()
  67. {
  68.     debug "$name: stop"
  69.     backup_file update $my_tmpfs_dist $my_tmpfs_dist.bak $my_tmpfs_dist.bak2
  70.     /usr/sbin/mtree -c -d -i -n -k uname,gname,mode,nochange -p /var/spool > $my_tmpfs_dist
  71.     if [ -n $varlog_backup ]; then
  72.     mkdir -p $varlog_backup
  73.     cp -a /var/log/ $varlog_backup
  74.     fi
  75.     if [ -n "$samba_enable" ] && checkyesno samba_enable; then
  76.     debug "$name: samba enabled"
  77.     mkdir -p $samba_backup $samba_backup/etc
  78.     cp /var/db/samba/account_policy.tdb /var/db/samba/group_mapping.ldb \
  79.         /var/db/samba/ntdrivers.tdb /var/db/samba/ntdrivers.tdb \
  80.         /var/db/samba/ntforms.tdb /var/db/samba/ntprinters.tdb \
  81.         /var/db/samba/registry.tdb /var/db/samba/share_info.tdb \
  82.         $samba_backup
  83.     cp /usr/local/etc/samba/*.tdb $samba_backup/etc
  84.     /usr/local/bin/tdbbackup $samba_backup/*.tdb \
  85.         $samba_backup/group_mapping.ldb $samba_backup/etc/*.tdb
  86.     fi
  87.     if [ -n "$spamd_enable" ] && checkyesno spamd_enable; then
  88.     debug "$name: spamd enabled"
  89.     mkdir -p $spamd_backup/.spamassassin
  90.     backup_file update  $spamd_backup/.spamassassin/backup.txt \
  91.         $spamd_backup/.spamassassin/backup.txt.bak $spamd_backup/.spamassassin/backup.txt.bak2
  92.     /usr/local/bin/sa-learn --backup --dbpath /var/spool/spamd/.spamassassin > \
  93.         $spamd_backup/.spamassassin/backup.txt
  94.    
  95.     fi
  96. }
  97. run_rc_command "$1"
  98.  
  99.  
  100.  
Advertisement
Add Comment
Please, Sign In to add comment