Guest User

symlink_DFS

a guest
Jul 27th, 2011
260
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   1 #!/bin/bash
  2.   2
  3.   3 # creation des liens symboliques DFS dans les différents DFS root
  4.   4
  5.   5 #fonction permettant de créer le lien symbolique DFS avec pour parametre la cible a lier et l'emplacement du lien (ex: lienDFS partage1 /home/Partages/zo    ne/Partage)
  6.   6 lien_DFS(){
  7.   7         cible=$(echo msdfs:172.18.60.9\\"$1")
  8.  8         dest="$2"
  9.  9         ln -s "$cible" "$dest"
  10. 10         echo "ln -s $cible $dest"
  11. 11 }
  12. 12
  13. 13
  14. 14 temps=`date '+%s'`                                              #temps en seconde depuis 00:00:00 1 janv 1970
  15. 15 temps_cron=900                                                  #temps de refresh du cron
  16. 16 temps_smbconf=`date -r /etc/samba/smb.conf '+%s'`               #temps de modification de smb.conf
  17. 17 temps_users=`date -r /home/Utilisateurs '+%s'`                  #temps de modification du dossier Utilisateurs
  18. 18 temps_shares=`date -r /home/Partages '+%s'`                     #temps de modification du dossier Partages
  19. 19 temps_enseignes=`date -r /home/Partages/Enseignes '+%s'`        #temps de modification du dossier Partages/Enseignes
  20. 20 temps_zone=`date -r /home/Partages/Zone '+%s'`                  #temps de modification du dossier Partages/zone
  21. 21 let temps_m1h=temps-temps_cron                                  #temps de référence
  22. 22
  23. 23 #test permettant de décider des liens doivent être ajoutés
  24. 24 if test "$temps" -ge "$temps_smbconf" -a "$temps_smbconf" -ge "$temps_m1h"
  25. 25 then
  26. 26         if test "$temps" -ge "$temps_users" -a "$temps_users" -ge "$temps_m1h"
  27. 27         then
  28. 28                 #recherche des liens vers les dossiers ajoutés/supprimés
  29. 29                 ls /home/Utilisateurs >> /tmp/users
  30. 30                 ls /home/Sauvegarde >> /tmp/svg
  31. 31                 diff -dBi /tmp/svg /tmp/users | grep "<\|>" | while read ligne
  32. 32                 do
  33. 33                         car=$(echo $ligne | cut -d" " -f1)
  34. 34                         partage=$(echo $ligne | cut -d" " -f2)
  35. 35                         # test permettant de déterminer s'il faut ajouter ou supprimer le lien
  36. 36                         if test "$partage" != "admin"
  37. 37                         then
  38. 38                                 if test "$car" = ">"
  39. 39                                 then
  40. 40                                         lien_DFS "$partage" "/home/Sauvegarde/$partage"
  41. 41                                 else
  42. 42                                         rm "/home/Sauvegarde/$partage"
  43. 43                                 fi
  44. 44                         fi
  45. 45                 done
  46. 46                 rm /tmp/users /tmp/svg
  47. 47         fi
  48. 48
  49. 49         if test "$temps" -ge "$temps_enseignes" -a "$temps_enseignes" -ge "$temps_m1h"
  50. 50         then
  51. 51                 #recherche des liens vers les dossiers ajoutés/supprimés
  52. 52                 ls /home/Partages/Enseignes >> /tmp/share_ens_tmp
  53. 53                 cat /tmp/share_ens_tmp | while read line
  54. 54                 do
  55. 55                         #permet de récupérer les noms de partages qui peuvent être différents du nom du dossiers
  56. 56                         share_name=$(testparm -s 2>/dev/null | grep "path = /home/Partages/Enseignes/$line" -B 6 | grep "\[" | sed "s/\[\|\]//g")
  57. 57                         echo $share_name >> /tmp/share_ens
  58. 58                 done
  59. 59                 ls /home/Enseignes >> /tmp/syml_ens
  60. 60                 diff -dBi /tmp/syml_ens /tmp/share_ens | grep "<\|>" | while read ligne
  61. 61                 do
  62. 62                         car=$(echo $ligne | cut -d" " -f1)
  63. 63                         partage=$(echo $ligne | sed "s/< \|> //g")
  64. 64                         # test permettant de déterminer s'il faut ajouter ou supprimer le lien
  65. 65                         if test "$car" = ">"
  66. 66                         then
  67. 67                                 lien_DFS "$partage" "/home/Enseignes/$partage"
  68. 68                         else
  69. 69                                 rm "/home/Enseignes/$partage"
  70. 70                         fi
  71. 71                 done
  72. 72                 rm /tmp/share_ens /tmp/syml_ens /tmp/share_ens_tmp
  73. 73         fi
  74. 74
  75. 75         if test "$temps" -ge "$temps_zone" -a "$temps_zone" -ge "$temps_m1h"
  76. 76         then
  77. 77                 #recherche des liens vers les dossiers ajoutés/supprimés
  78. 78                 ls /home/Partages/Zone >> /tmp/share_zone_tmp
  79. 79                 cat /tmp/share_zone_tmp | while read line
  80. 80                 do
  81. 81                         #permet de récupérer les noms de partages qui peuvent être différents du nom du dossiers
  82. 82                         share_name=$(testparm -s 2>/dev/null | grep "path = /home/Partages/Zone/$line" -B 6 | grep "\[" | sed "s/\[\|\]//g")
  83. 83                         echo $share_name >> /tmp/share_zone
  84. 84                 done
  85. 85                 ls /home/Zone >> /tmp/syml_zone
  86. 86                 diff -dBi /tmp/syml_zone /tmp/share_zone | grep "<\|>" | while read ligne
  87. 87                 do
  88. 88                         car=$(echo $ligne | cut -d" " -f1)
  89. 89                         partage=$(echo $ligne | sed "s/< \|> //g")
  90. 90                         # test permettant de déterminer s'il faut ajouter ou supprimer le lien
  91. 91                         if test "$car" = ">"
  92. 92                         then
  93. 93                                 lien_DFS "$partage" "/home/Zone/$partage"
  94. 94                         else
  95. 95                                 rm "/home/Zone/$partage"
  96. 96                         fi
  97. 97                 done
  98. 98                 rm /tmp/share_zone /tmp/syml_zone /tmp/share_zone_tmp
  99. 99         fi
  100. 100 fi
RAW Paste Data