From 1911549f5bb11e6a71541ef0cb0bf6068ce4aee9 Mon Sep 17 00:00:00 2001 From: Ralf Koop Date: Tue, 2 Jan 2024 11:28:28 +0100 Subject: [PATCH] . --- Eingang/unraid-clear-disk.md | 135 ++++++++++++++++++ .../remove-missed-feature-from-db.ps1 | 37 +++++ Wenite/missing-setup-files.md | 54 +++++++ 3 files changed, 226 insertions(+) create mode 100644 Eingang/unraid-clear-disk.md create mode 100644 Powershellscripts/remove-missed-feature-from-db.ps1 create mode 100644 Wenite/missing-setup-files.md diff --git a/Eingang/unraid-clear-disk.md b/Eingang/unraid-clear-disk.md new file mode 100644 index 0000000..f2f7ba8 --- /dev/null +++ b/Eingang/unraid-clear-disk.md @@ -0,0 +1,135 @@ +Script um Disk in Unraid zu löschen : + +```Plaintext +#!/bin/bash +# A script to clear an unRAID array drive. It first checks the drive is completely empty, +# except for a marker indicating that the user desires to clear the drive. The marker is +# that the drive is completely empty except for a single folder named 'clear-me'. +# +# Array must be started, and drive mounted. There's no other way to verify it's empty. +# Without knowing which file system it's formatted with, I can't mount it. +# +# Quick way to prep drive: format with ReiserFS, then add 'clear-me' folder. +# +# 1.0 first draft +# 1.1 add logging, improve comments +# 1.2 adapt for User.Scripts, extend wait to 60 seconds +# 1.3 add progress display; confirm by key (no wait) if standalone; fix logger +# 1.4 only add progress display if unRAID version >= 6.2 + +version="1.4" +marker="clear-me" +found=0 +wait=60 +p=${0%%$P} # dirname of program +p=${p:0:18} +q="/tmp/user.scripts/" + +echo -e "*** Clear an unRAID array data drive *** v$version\n" + +# Check if array is started +ls /mnt/disk[1-9]* 1>/dev/null 2>/dev/null +if [ $? -ne 0 ] +then + echo "ERROR: Array must be started before using this script" + exit +fi + +# Look for array drive to clear +n=0 +echo -n "Checking all array data drives (may need to spin them up) ... " +if [ "$p" == "$q" ] # running in User.Scripts +then + echo -e "\n" + c="" + c0="" +else #set color teal + c="\x1b[36;01m" + c0="\x1b[39;49;00m" +fi + +for d in /mnt/disk[1-9]* +do + x=`ls -A $d` + z=`du -s $d` + y=${z:0:1} +# echo -e "d:"$d "x:"${x:0:20} "y:"$y "z:"$z + + # the test for marker and emptiness + if [ "$x" == "$marker" -a "$y" == "0" ] + then + found=1 + break + fi + let n=n+1 +done + +#echo -e "found:"$found "d:"$d "marker:"$marker "z:"$z "n:"$n + +# No drives found to clear +if [ $found == "0" ] +then + echo -e "\rChecked $n drives, did not find an empty drive ready and marked for clearing!\n" + echo "To use this script, the drive must be completely empty first, no files" + echo "or folders left on it. Then a single folder should be created on it" + echo "with the name 'clear-me', exactly 8 characters, 7 lowercase and 1 hyphen." + echo "This script is only for clearing unRAID data drives, in preparation for" + echo "removing them from the array. It does not add a Preclear signature." + exit +fi + +# check unRAID version +v1=`cat /etc/unraid-version` +# v1 is 'version="6.2.0-rc5"' (fixme if 6.10.* happens) +v2="${v1:9:1}${v1:11:1}" +if [[ $v2 -ge 62 ]] +then + v=" status=progress" +else + v="" +fi +#echo -e "v1=$v1 v2=$v2 v=$v\n" + +# First, warn about the clearing, and give them a chance to abort +echo -e "\rFound a marked and empty drive to clear: $c Disk ${d:9} $c0 ( $d ) " +echo -e "* Disk ${d:9} will be unmounted first." +echo "* Then zeroes will be written to the entire drive." +echo "* Parity will be preserved throughout." +echo "* Clearing while updating Parity takes a VERY long time!" +echo "* The progress of the clearing will not be visible until it's done!" +echo "* When complete, Disk ${d:9} will be ready for removal from array." +echo -e "* Commands to be executed:\n***** $c umount $d $c0\n***** $c dd bs=1M if=/dev/zero of=/dev/md${d:9} $v $c0\n" +if [ "$p" == "$q" ] # running in User.Scripts +then + echo -e "You have $wait seconds to cancel this script (click the red X, top right)\n" + sleep $wait +else + echo -n "Press ! to proceed. Any other key aborts, with no changes made. " + ch="" + read -n 1 ch + echo -e -n "\r \r" + if [ "$ch" != "!" ]; + then + exit + fi +fi + +# Perform the clearing +logger -tclear_array_drive "Clear an unRAID array data drive v$version" +echo -e "\rUnmounting Disk ${d:9} ..." +logger -tclear_array_drive "Unmounting Disk ${d:9} (command: umount $d ) ..." +umount $d +echo -e "Clearing Disk ${d:9} ..." +logger -tclear_array_drive "Clearing Disk ${d:9} (command: dd bs=1M if=/dev/zero of=/dev/md${d:9} $v ) ..." +dd bs=1M if=/dev/zero of=/dev/md${d:9} $v +#logger -tclear_array_drive "Clearing Disk ${d:9} (command: dd bs=1M if=/dev/zero of=/dev/md${d:9} status=progress count=1000 seek=1000 ) ..." +#dd bs=1M if=/dev/zero of=/dev/md${d:9} status=progress count=1000 seek=1000 + +# Done +logger -tclear_array_drive "Clearing Disk ${d:9} is complete" +echo -e "\nA message saying \"error writing ... no space left\" is expected, NOT an error.\n" +echo -e "Unless errors appeared, the drive is now cleared!" +echo -e "Because the drive is now unmountable, the array should be stopped," +echo -e "and the drive removed (or reformatted)." +exit +``` \ No newline at end of file diff --git a/Powershellscripts/remove-missed-feature-from-db.ps1 b/Powershellscripts/remove-missed-feature-from-db.ps1 new file mode 100644 index 0000000..2e582b8 --- /dev/null +++ b/Powershellscripts/remove-missed-feature-from-db.ps1 @@ -0,0 +1,37 @@ +Add-PSSnapin Microsoft.SharePoint.PowerShell + + + +function Remove-SPFeatureFromContentDB($ContentDb, $FeatureId, [switch]$ReportOnly){ + #$db = Get-SPDatabase | where { $_.Name -eq $ContentDb } + [bool]$report = $false + if ($ReportOnly) { $report = $true } + $db.Sites | ForEach-Object { + Remove-SPFeature -obj $_ -objName "site collection" -featId $FeatureId -report $report + $_ | Get-SPWeb -Limit all | ForEach-Object { + Remove-SPFeature -obj $_ -objName "site" -featId $FeatureId -report $report + } + } +} + +function Remove-SPFeature($obj, $objName, $featId, [bool]$report){ + $feature = $obj.Features[$featId] + if ($feature -ne $null) { + if ($report) { + write-host "Feature found in" $objName ":" $obj.Url -foregroundcolor Red + } + else{ + try { + $obj.Features.Remove($feature.DefinitionId, $true) + write-host "Feature successfully removed from" $objName ":" $obj.Url -foregroundcolor Red + } + catch { + write-host "There has been an error trying to remove the feature:" $_ + } + } + } +else { +#write-host "Feature ID specified does not exist in" $objName ":" $obj.Url +} +} +Remove-SPFeatureFromContentDB -ContentDB "Your Content DB Name" -FeatureId "e9728ee6-7bfc-40a1-ad72-aa9a57e14407" -ReportOnly \ No newline at end of file diff --git a/Wenite/missing-setup-files.md b/Wenite/missing-setup-files.md new file mode 100644 index 0000000..c02d18f --- /dev/null +++ b/Wenite/missing-setup-files.md @@ -0,0 +1,54 @@ +my/kgrimm/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/cziegenfuss/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/swoltering/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/abuerger/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/ext-adm-merentis/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/aplachetta/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/cschweers/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/mkleefeldt/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/sschoenauer/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/jniblett/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/pwramling/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/svc-de-bre01-shpsear/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/caugust/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/mhenneke/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/hkolberg/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/anschmidt/_catalogs/masterpage/Display Templates/Language Files/pt-br + + + +my/kgrimm/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/cziegenfuss/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/swoltering/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/abuerger/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/ext-adm-merentis/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/aplachetta/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/cschweers/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/mkleefeldt/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/sschoenauer/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/jniblett/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/pwramling/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/svc-de-bre01-shpsear/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/caugust/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/mhenneke/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/hkolberg/_catalogs/masterpage/Display Templates/Language Files/pt-br +my/anschmidt/_catalogs/masterpage/Display Templates/Language Files/pt-br + + + +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js +Features\SearchWebParts\pt-br\CustomStrings.js