#!/bin/bash



#Variables

REMOVEJOURNALIER=false
CONSERVEDESTINATION=false
REMOVEALL=true

DEDIE=false
MUTU=true

RETAINGROW=30
RETAINCLOUD=45
RETAINPRO=90

RETAINMONTHGROW=false
RETAINMONTHCLOUD=true
RETAINMONTHPRO=true

RETAINPERIODMONTHGROW=0
RETAINPERIODMONTHCLOUD=3
RETAINPERIODMONTHPRO=3

IP=10.19.0.255

MIGRATE=false


for arg in "$@"; do
  eval "$arg"
done


## ON INSTALL JQ AVEC ONIGURAMA POUR QUE cA MARCHE

command -v jq >/dev/null 2>&1 || yum install -y jq oniguruma

####VARIABLE
hostname2=$(echo $HOSTNAME | cut -d "." -f1)

#########ON ALLOW L'IP AVANT#############
csf -a $IP


##################VERIFICATION DE JETBACKUP 5 SINON ON l'INSTALL####################

if ! command -v /usr/bin/jetbackup5api &> /dev/null
then
	yum remove jetbackup-core
jetapps --remove jetbackup5-cpanel
yum remove jetapps-repo

bash <(curl -LSs http://repo.jetlicense.com/static/install)
	jetapps --install jetbackup5-cpanel stable
	echo "On attend 20 secondes le temps que jetbackup se lance"
	sleep 20
	jetbackup5api -F approveAgreement
	sleep 1
	jetbackup5api -F factoryReset

	#Copies des fichiers du thème.
	rm -f /usr/local/cpanel/base/frontend/o2switch/jetbackup
	rm -f /usr/local/cpanel/base/frontend/o2switch/jetbackup5
	yes no | cp -aRv /usr/local/cpanel/base/frontend/jupiter/jetbackup5/ /usr/local/cpanel/base/frontend/o2switch/
	ln -s /usr/local/cpanel/base/frontend/o2switch/jetbackup5 /usr/local/cpanel/base/frontend/o2switch/jetbackup


fi

mkdir -p /igor/workspace
mkdir -p /igor/downloads

#On verif l'installation de nouveau
if ! command -v /usr/bin/jetbackup5api &> /dev/null
then
        echo "pas installé correctement bisous"
        exit 1
fi

######################## CHANGEMENT DU REPERTOIRE DE JETBACKUP AVANT DE COMMENCER ########################

jetbackup5api -F manageSettingsGeneral -D "workspace_path=/igor/workspace&downloads_path=/igor/downloads&orphan_backup_ttl=30&downloads_ttl=1&manually_backup_retain=1&manually_backup_ttl=1"


#############CREATION DU USER SUR LE SERVEUR DE BACKUP####################

generate_random_uid() {
    echo $((RANDOM % (3000 - 1000 + 1) + 1000))
}

# Assignation des paramètres à des variables
ip="$IP"
uid=$(generate_random_uid)

PASSWORDBACKUP=$(openssl rand -base64 10)

encode=$(echo $PASSWORDBACKUP | jq -Rr '@uri')
echo $encode

# Génération de la commande CURL avec les variables
curl_command="curl -k -u root:Clone63+- -H \"Content-Type: application/json\" -X POST -d '{\"username\": \"$hostname2\",\"full_name\": \"$hostname2\",\"password\": \"$PASSWORDBACKUP\",\"uid\":$uid,\"ssh_password_enabled\": true,\"group_create\": true,\"home\": \"/mnt/bkp1\",\"home_create\": true}' https://$ip/api/v2.0/user"
# Exécution de la commande CURL
eval "$curl_command"

echo "Création du User Fait"




########################## ON INSTALLE LE PAQUET SSH POUR JETBACKUP 5 #################

packageID=$(jetbackup5api -F listPackages -D "filter=destination&find[name]=SSH (Legacy)" -O json | jq -r '.data.packages[0]._id')
installedID=$(jetbackup5api -F installPlugin -D "package_id=$packageID" -O json | jq -r '.data._id')

sleep 4

jetbackup5api -F managePlugin -D "_id=$installedID&disabled=0&visible=1"

sleep 4

########################## si migration de serveur de backup on met la variable MIGRATE à true ##############

if [ "$MIGRATE" = "true" ]; then

   jetbackup5api -F stopAllQueueGroup

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Grow-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Pro-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2


   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1&name=Journalier-Externe-O"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Grow") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1&name=Journalier-Externe-Grow-O"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Pro") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1&name=Journalier-Externe-Pro-O"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1&name=Journalier-O"
   sleep 2


   echo "####################################"

   destinationIDTODEL=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier-Externe") | ._id')
   jetbackup5api -F manageDestination -D "action=modify&_id=$destinationIDTODEL&name=Journalier-Externe-O"

   echo "##################################"


fi


######################## IF REMOVE ALL pour refaire l'installation de 0 #####################
 
if [ "$REMOVEALL" = "true" ]; then

   jetbackup5api -F stopAllQueueGroup
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Grow") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Pro") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Grow-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Pro-O") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2

   destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier") | ._id')
   jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
   jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
   sleep 2


   destinationIDTODEL=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier-Externe-O") | ._id')
   jetbackup5api -F deleteDestination -D "_id=$destinationIDTODEL"
   sleep 2

   destinationIDTODEL=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier-Externe") | ._id')
   jetbackup5api -F deleteDestination -D "_id=$destinationIDTODEL"
   sleep 2

   destinationIDTODEL=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier") | ._id')
   jetbackup5api -F deleteDestination -D "_id=$destinationIDTODEL"
   sleep 2

   echo "Tout supprimer pour tout refaire"
   
fi



######################## RAJOUT DE LA DESTINATION DISTANTE ####################################

if [ "$CONSERVEDESTINATION" = "true" ]; then
   destinationID=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier-Externe") | ._id')
   echo "On conserve la destination"
else
   jetbackup5api -F manageDestination -D "action=create&type=SSH&name=Journalier-Externe&dr=1&options[path]=./&options[host]=$IP&options[port]=22&options[username]=$hostname2&options[password]=$encode&options[prefer_ip]=4&options[rsyncbwlimit]=5120" 
   echo "On ne conserve pas la destination"
fi

destinationID=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier-Externe") | ._id')


##############################################################################################


# Créer les schedule associés

jetbackup5api -F manageSchedule -D 'action=create&name=Journalier-Externe-Grow&type=2&type_data[0]=1&type_data[1]=2&type_data[2]=3&type_data[3]=4&type_data[4]=5&type_data[5]=6&type_data[6]=7'
jetbackup5api -F manageSchedule -D 'action=create&name=Journalier-Externe-Cloud&type=2&type_data[0]=1&type_data[1]=2&type_data[2]=3&type_data[3]=4&type_data[4]=5&type_data[5]=6&type_data[6]=7'
jetbackup5api -F manageSchedule -D 'action=create&name=Journalier-Externe-Pro&type=2&type_data[0]=1&type_data[1]=2&type_data[2]=3&type_data[3]=4&type_data[4]=5&type_data[5]=6&type_data[6]=7'


# Récupère l'ID du schedule
scheduleIDGrow=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Externe-Grow") | ._id')
scheduleIDCloud=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Externe-Cloud") | ._id')
scheduleIDPro=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Externe-Pro") | ._id')

# ON créer le deuxième schedule
jetbackup5api -F manageSchedule -D "action=create&name=Journalier-Monthly-Grow&type=4&type_data[0]=1" # -> Not in Use
jetbackup5api -F manageSchedule -D "action=create&name=Journalier-Monthly-Cloud&type=4&type_data[0]=1"
jetbackup5api -F manageSchedule -D "action=create&name=Journalier-Monthly-Pro&type=4&type_data[0]=1"

scheduleID2Grow=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Monthly-Grow") ._id')
scheduleID2Cloud=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Monthly-Cloud") ._id')
scheduleID2Pro=$(jetbackup5api -F listSchedules -O json | jq -r '.data.schedules[] | select(.name == "Journalier-Monthly-Pro") ._id')


############# Création des filtres de compte pour backuper les bons comptes ######################

jetbackup5api -F manageAccountFilter -D "action=create&type=64&name=Grow&condition=1&list[0]=o2switch_grow&list[1]=subaccount_grow"
jetbackup5api -F manageAccountFilter -D "action=create&type=64&name=Cloud&condition=1&list[0]=o2switch&list[1]=subaccount&list[2]=o2"
jetbackup5api -F manageAccountFilter -D "action=create&type=64&name=Pro&condition=1&list[0]=o2switch_pro&list[1]=subaccount_pro"

accountFilterGrow=$(jetbackup5api -F listAccountFilters -O json | jq -r '.data.filters[] | select(.name == "Grow") .group_id')
accountFilterCloud=$(jetbackup5api -F listAccountFilters -O json | jq -r '.data.filters[] | select(.name == "Cloud") .group_id')
accountFilterPro=$(jetbackup5api -F listAccountFilters -O json | jq -r '.data.filters[] | select(.name == "Pro") .group_id')

filtersGrow=$(jq -rn --arg id "$accountFilterGrow" '[[$id]] | @uri')
filtersCloud=$(jq -rn --arg id "$accountFilterCloud" '[[$id]] | @uri')
filtersPro=$(jq -rn --arg id "$accountFilterPro" '[[$id]] | @uri')

OWNER_ACCOUNT_ID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "JetBackup Config") | .owner')
OWNER_ACCOUNT_NAME=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "JetBackup Config") | .owner_name')

sleep 4




# Créer le job Journalier pour l'offre Grow - 30 jours de rétention jour/jour uniquement
jetbackup5api -F manageBackupJob -D \
"action=create&\
name=Journalier-Externe-Grow&\
owner=$OWNER_ACCOUNT_ID&\
owner_name=$OWNER_ACCOUNT_NAME&\
destination[0]=$destinationID&\
type=1&\
contains=511&\
structure=1&\
exclude_list[0]=smarty/cache&\
exclude_list[1]=cachefs&\
exclude_list[2]=/home*/*/mail/new*&\
exclude_list[3]=/home*/*/mail/cur*&\
exclude_list[4]=/home*/*/mail/tmp*&\
exclude_list[5]=/home*/*/mail/*/new*&\
exclude_list[6]=/home*/*/mail/*/*/new*&\
exclude_list[7]=*/mail/new*&\
exclude_list[8]=*/mail/cur*&\
exclude_list[9]=*/mail/tmp*&\
exclude_list[10]=*/mail/*/new*&\
exclude_list[11]=*/mail/*/*/new*&\
exclude_list[12]=mail/new*&\
exclude_list[13]=mail/cur*&\
exclude_list[14]=mail/tmp*&\
exclude_list[15]=mail/*/new*&\
exclude_list[16]=mail/*/*/new*&\
exclude_list[17]=*.tib&\
exclude_list[18]=*.TIB&\
exclude_list[19]=*.nef&\
exclude_list[20]=*.NEF&\
exclude_list[21]=*.dng&\
exclude_list[22]=*.DNG&\
exclude_list[23]=*.dpx&\
exclude_list[24]=*.DPX&\
exclude_list[25]=*.tgz&\
exclude_list[26]=*.TGZ&\
exclude_list[27]=*.pef&\
exclude_list[28]=*.PEF&\
exclude_list[29]=*.mos&\
exclude_list[30]=*.MOS&\
exclude_list[31]=*.bz2&\
exclude_list[32]=*.BZ2&\
exclude_list[33]=*todel*&\
exclude_list[34]=*/.wysiwygPro_*&\
exclude_list[35]=*/core.[0-9]&\
exclude_list[36]=core.[0-9]&\
exclude_list[37]=virtfs&\
exclude_list[38]=*.gz&\
exclude_list[39]=*.GZ&\
exclude_list[40]=*.ARW&\
exclude_list[41]=*.arw&\
exclude_list[42]=*.CR2&\
exclude_list[43]=*.cr2&\
exclude_list[44]=*.aes&\
exclude_list[45]=*.AES&\
exclude_list[46]=*.mts&\
exclude_list[47]=*.MTS&\
exclude_list[48]=*.gpg&\
exclude_list[49]=*.GPG&\
exclude_list[50]=.MirrorSearch&\
exclude_list[51]=.cpan&\
exclude_list[52]=.cpanel/caches&\
exclude_list[53]=.cpanel/datastore&\
exclude_list[54]=.cpcpan&\
exclude_list[55]=.sqmailattach&\
exclude_list[56]=access-logs&\
exclude_list[57]=public_ftp/.ftpquota&\
exclude_list[58]=*/tmp&\
exclude_list[59]=.softaculous&\
exclude_list[60]=.spamassassin&\
exclude_list[61]=*/.Spam&\
exclude_list[62]=*/.spam&\
exclude_list[63]=*/.Drafts&\
exclude_list[64]=*/.drafts&\
exclude_list[65]=*/.Junk&\
exclude_list[66]=*/.junk&\
exclude_list[67]=*/.Trash&\
exclude_list[68]=*/.trash&\
exclude_list[69]=*/error_log&\
exclude_list[70]=*/deprecation_*&\
exclude_list[71]=*/temp_CACHED_*&\
exclude_list[72]=*/ENABLE_INSTALL_TOOL*&\
exclude_list[73]=typo3temp&\
exclude_list[74]=*.tar.gz&\
exclude_list[75]=*.tar&\
exclude_list[76]=*.iso&\
exclude_list[77]=*.img&\
exclude_list[78]=*.zip&\
exclude_list[79]=*.jpa&\
exclude_list[80]=*.7z&\
exclude_list[81]=*.rar&\
exclude_list[82]=*.tmp&\
exclude_list[83]=*.TAR.GZ&\
exclude_list[84]=*.TAR&\
exclude_list[85]=*.ISO&\
exclude_list[86]=*.IMG&\
exclude_list[87]=*.ZIP&\
exclude_list[88]=*.JPA&\
exclude_list[89]=*.7Z&\
exclude_list[90]=*.RAR&\
exclude_list[91]=*.TMP&\
exclude_list[92]=.cagefs*&\
exclude_list[93]=*/backupbuddy_backups/*&\
exclude_list[94]=*/cache/smarty/*&\
exclude_list[95]=*/com_akeeba/backup/*&\
exclude_list[96]=*/var/backups/*&\
exclude_list[97]=*/var/cache/*&\
exclude_list[98]=*/wp-content/cache/*&\
exclude_list[99]=*/wp-content/wphb-cache/*&\
exclude_list[100]=*/et-cache/*&\
exclude_list[101]=*/litespeed/css/*&\
exclude_list[102]=*/litespeed/js/*&\
exclude_list[103]=.trash&\
exclude_list[104]=softaculous_backups/*&\
schedules[0][_id]=$scheduleIDGrow&\
schedules[0][retain]=30&\
filters[0][0]=$accountFilterGrow&\
time=2300&\
monitor[ranfor]=0&\
monitor[notran]=0"

echo "Ajout du Jobs Finit GROW -> On le lance"



#######################Ajout du backup job pour l'offre Cloud - 45 jours de rétention + 3 par mois ##################


jetbackup5api -F manageBackupJob -D \
"action=create&\
name=Journalier-Externe&\
owner=$OWNER_ACCOUNT_ID&\
owner_name=$OWNER_ACCOUNT_NAME&\
destination[0]=$destinationID&\
type=1&\
contains=511&\
structure=1&\
exclude_list[0]=smarty/cache&\
exclude_list[1]=cachefs&\
exclude_list[2]=/home*/*/mail/new*&\
exclude_list[3]=/home*/*/mail/cur*&\
exclude_list[4]=/home*/*/mail/tmp*&\
exclude_list[5]=/home*/*/mail/*/new*&\
exclude_list[6]=/home*/*/mail/*/*/new*&\
exclude_list[7]=*/mail/new*&\
exclude_list[8]=*/mail/cur*&\
exclude_list[9]=*/mail/tmp*&\
exclude_list[10]=*/mail/*/new*&\
exclude_list[11]=*/mail/*/*/new*&\
exclude_list[12]=mail/new*&\
exclude_list[13]=mail/cur*&\
exclude_list[14]=mail/tmp*&\
exclude_list[15]=mail/*/new*&\
exclude_list[16]=mail/*/*/new*&\
exclude_list[17]=*.tib&\
exclude_list[18]=*.TIB&\
exclude_list[19]=*.nef&\
exclude_list[20]=*.NEF&\
exclude_list[21]=*.dng&\
exclude_list[22]=*.DNG&\
exclude_list[23]=*.dpx&\
exclude_list[24]=*.DPX&\
exclude_list[25]=*.tgz&\
exclude_list[26]=*.TGZ&\
exclude_list[27]=*.pef&\
exclude_list[28]=*.PEF&\
exclude_list[29]=*.mos&\
exclude_list[30]=*.MOS&\
exclude_list[31]=*.bz2&\
exclude_list[32]=*.BZ2&\
exclude_list[33]=*todel*&\
exclude_list[34]=*/.wysiwygPro_*&\
exclude_list[35]=*/core.[0-9]&\
exclude_list[36]=core.[0-9]&\
exclude_list[37]=virtfs&\
exclude_list[38]=*.gz&\
exclude_list[39]=*.GZ&\
exclude_list[40]=*.ARW&\
exclude_list[41]=*.arw&\
exclude_list[42]=*.CR2&\
exclude_list[43]=*.cr2&\
exclude_list[44]=*.aes&\
exclude_list[45]=*.AES&\
exclude_list[46]=*.mts&\
exclude_list[47]=*.MTS&\
exclude_list[48]=*.gpg&\
exclude_list[49]=*.GPG&\
exclude_list[50]=.MirrorSearch&\
exclude_list[51]=.cpan&\
exclude_list[52]=.cpanel/caches&\
exclude_list[53]=.cpanel/datastore&\
exclude_list[54]=.cpcpan&\
exclude_list[55]=.sqmailattach&\
exclude_list[56]=access-logs&\
exclude_list[57]=public_ftp/.ftpquota&\
exclude_list[58]=*/tmp&\
exclude_list[59]=.softaculous&\
exclude_list[60]=.spamassassin&\
exclude_list[61]=*/.Spam&\
exclude_list[62]=*/.spam&\
exclude_list[63]=*/.Drafts&\
exclude_list[64]=*/.drafts&\
exclude_list[65]=*/.Junk&\
exclude_list[66]=*/.junk&\
exclude_list[67]=*/.Trash&\
exclude_list[68]=*/.trash&\
exclude_list[69]=*/error_log&\
exclude_list[70]=*/deprecation_*&\
exclude_list[71]=*/temp_CACHED_*&\
exclude_list[72]=*/ENABLE_INSTALL_TOOL*&\
exclude_list[73]=typo3temp&\
exclude_list[74]=*.tar.gz&\
exclude_list[75]=*.tar&\
exclude_list[76]=*.iso&\
exclude_list[77]=*.img&\
exclude_list[78]=*.zip&\
exclude_list[79]=*.jpa&\
exclude_list[80]=*.7z&\
exclude_list[81]=*.rar&\
exclude_list[82]=*.tmp&\
exclude_list[83]=*.TAR.GZ&\
exclude_list[84]=*.TAR&\
exclude_list[85]=*.ISO&\
exclude_list[86]=*.IMG&\
exclude_list[87]=*.ZIP&\
exclude_list[88]=*.JPA&\
exclude_list[89]=*.7Z&\
exclude_list[90]=*.RAR&\
exclude_list[91]=*.TMP&\
exclude_list[92]=.cagefs*&\
exclude_list[93]=*/backupbuddy_backups/*&\
exclude_list[94]=*/cache/smarty/*&\
exclude_list[95]=*/com_akeeba/backup/*&\
exclude_list[96]=*/var/backups/*&\
exclude_list[97]=*/var/cache/*&\
exclude_list[98]=*/wp-content/cache/*&\
exclude_list[99]=*/wp-content/wphb-cache/*&\
exclude_list[100]=*/et-cache/*&\
exclude_list[101]=*/litespeed/css/*&\
exclude_list[102]=*/litespeed/js/*&\
exclude_list[103]=.trash&\
exclude_list[104]=softaculous_backups/*&\
schedules[0][_id]=$scheduleIDCloud&\
schedules[0][retain]=45&\
schedules[1][_id]=$scheduleID2Cloud&\
schedules[1][retain]=3&\
filters[0][0]=$accountFilterCloud&\
time=2300&\
monitor[ranfor]=0&\
monitor[notran]=0"



###################### Ajout du backup job pour l'offre Pro : 90 jours de rétention + 3 par mois en supplément


jetbackup5api -F manageBackupJob -D \
"action=create&\
name=Journalier-Externe-Pro&\
owner=$OWNER_ACCOUNT_ID&\
owner_name=$OWNER_ACCOUNT_NAME&\
destination[0]=$destinationID&\
type=1&\
contains=511&\
structure=1&\
exclude_list[0]=smarty/cache&\
exclude_list[1]=cachefs&\
exclude_list[2]=/home*/*/mail/new*&\
exclude_list[3]=/home*/*/mail/cur*&\
exclude_list[4]=/home*/*/mail/tmp*&\
exclude_list[5]=/home*/*/mail/*/new*&\
exclude_list[6]=/home*/*/mail/*/*/new*&\
exclude_list[7]=*/mail/new*&\
exclude_list[8]=*/mail/cur*&\
exclude_list[9]=*/mail/tmp*&\
exclude_list[10]=*/mail/*/new*&\
exclude_list[11]=*/mail/*/*/new*&\
exclude_list[12]=mail/new*&\
exclude_list[13]=mail/cur*&\
exclude_list[14]=mail/tmp*&\
exclude_list[15]=mail/*/new*&\
exclude_list[16]=mail/*/*/new*&\
exclude_list[17]=*.tib&\
exclude_list[18]=*.TIB&\
exclude_list[19]=*.nef&\
exclude_list[20]=*.NEF&\
exclude_list[21]=*.dng&\
exclude_list[22]=*.DNG&\
exclude_list[23]=*.dpx&\
exclude_list[24]=*.DPX&\
exclude_list[25]=*.tgz&\
exclude_list[26]=*.TGZ&\
exclude_list[27]=*.pef&\
exclude_list[28]=*.PEF&\
exclude_list[29]=*.mos&\
exclude_list[30]=*.MOS&\
exclude_list[31]=*.bz2&\
exclude_list[32]=*.BZ2&\
exclude_list[33]=*todel*&\
exclude_list[34]=*/.wysiwygPro_*&\
exclude_list[35]=*/core.[0-9]&\
exclude_list[36]=core.[0-9]&\
exclude_list[37]=virtfs&\
exclude_list[38]=*.gz&\
exclude_list[39]=*.GZ&\
exclude_list[40]=*.ARW&\
exclude_list[41]=*.arw&\
exclude_list[42]=*.CR2&\
exclude_list[43]=*.cr2&\
exclude_list[44]=*.aes&\
exclude_list[45]=*.AES&\
exclude_list[46]=*.mts&\
exclude_list[47]=*.MTS&\
exclude_list[48]=*.gpg&\
exclude_list[49]=*.GPG&\
exclude_list[50]=.MirrorSearch&\
exclude_list[51]=.cpan&\
exclude_list[52]=.cpanel/caches&\
exclude_list[53]=.cpanel/datastore&\
exclude_list[54]=.cpcpan&\
exclude_list[55]=.sqmailattach&\
exclude_list[56]=access-logs&\
exclude_list[57]=public_ftp/.ftpquota&\
exclude_list[58]=*/tmp&\
exclude_list[59]=.softaculous&\
exclude_list[60]=.spamassassin&\
exclude_list[61]=*/.Spam&\
exclude_list[62]=*/.spam&\
exclude_list[63]=*/.Drafts&\
exclude_list[64]=*/.drafts&\
exclude_list[65]=*/.Junk&\
exclude_list[66]=*/.junk&\
exclude_list[67]=*/.Trash&\
exclude_list[68]=*/.trash&\
exclude_list[69]=*/error_log&\
exclude_list[70]=*/deprecation_*&\
exclude_list[71]=*/temp_CACHED_*&\
exclude_list[72]=*/ENABLE_INSTALL_TOOL*&\
exclude_list[73]=typo3temp&\
exclude_list[74]=*.tar.gz&\
exclude_list[75]=*.tar&\
exclude_list[76]=*.iso&\
exclude_list[77]=*.img&\
exclude_list[78]=*.zip&\
exclude_list[79]=*.jpa&\
exclude_list[80]=*.7z&\
exclude_list[81]=*.rar&\
exclude_list[82]=*.tmp&\
exclude_list[83]=*.TAR.GZ&\
exclude_list[84]=*.TAR&\
exclude_list[85]=*.ISO&\
exclude_list[86]=*.IMG&\
exclude_list[87]=*.ZIP&\
exclude_list[88]=*.JPA&\
exclude_list[89]=*.7Z&\
exclude_list[90]=*.RAR&\
exclude_list[91]=*.TMP&\
exclude_list[92]=.cagefs*&\
exclude_list[93]=*/backupbuddy_backups/*&\
exclude_list[94]=*/cache/smarty/*&\
exclude_list[95]=*/com_akeeba/backup/*&\
exclude_list[96]=*/var/backups/*&\
exclude_list[97]=*/var/cache/*&\
exclude_list[98]=*/wp-content/cache/*&\
exclude_list[99]=*/wp-content/wphb-cache/*&\
exclude_list[100]=*/et-cache/*&\
exclude_list[101]=*/litespeed/css/*&\
exclude_list[102]=*/litespeed/js/*&\
exclude_list[103]=.trash&\
exclude_list[104]=softaculous_backups/*&\
schedules[0][_id]=$scheduleIDPro&\
schedules[0][retain]=90&\
schedules[1][_id]=$scheduleID2Pro&\
schedules[1][retain]=3&\
filters[0][0]=$accountFilterPro&\
time=2300&\
monitor[ranfor]=0&\
monitor[notran]=0"


########################On change le setup de jetbackup pour qu'il soit bon ##########################

jetbackup5api -F manageSettingsGeneral -D "manually_backup_retain=14&manually_backup_ttl=0&debug=0&time_format:24"

jetbackup5api -F manageSettingsPerformance -D "backup_forks=3&limit_account_downloads=1&queueable_forks=1&system_forks=1&limit_account_downloads"

jetbackup5api -F manageSettingsResource -D "cpu_limit=200&io_read_limit=5&io_write_limit=5"


######################## ON LANCE LE BACKUP QU'ON VIENT DE RAJOUTER #################################

destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Grow") | ._id')
jetbackup5api -F runBackupJobManually -D "_id=$destinationJournalierID"

destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe-Pro") | ._id')
jetbackup5api -F runBackupJobManually -D "_id=$destinationJournalierID"

destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe") | ._id')
jetbackup5api -F runBackupJobManually -D "_id=$destinationJournalierID"



###################### DISABLE JOURNALIER BACKUP ############################

destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier") | ._id')
jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"
jetbackup5api -F deleteBackupJob -D "_id=$destinationJournalierID"
sleep 2

destinationIDTODEL=$(jetbackup5api -F listDestinations -O json | jq -r '.data.destinations[] | select(.name == "Journalier") | ._id')
jetbackup5api -F deleteDestination -D "_id=$destinationIDTODEL"

sleep 2
echo "Suppression du backup Journalier si il existe -> Finit"

sleep 4

### On desactive le journalier externe pour éviter que les backups se fassent
#destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe") | ._id')
#jetbackup5api -F manageBackupJob -D "action=modify&_id=$destinationJournalierID&disabled=1"


destinationJournalierID=$(jetbackup5api -F listBackupJobs -O json | jq -r '.data.jobs[] | select(.name == "Journalier-Externe") | ._id')

####################### ON VERIFIE A LA FIN #######################################################

if [ -z "$destinationJournalierID" ]; then
    echo -e "\e[31mLe Backup existe pas, vérifier le déroulement de l'ajout, une erreur doit être présente.\e[0m"
else
    echo -e "\e[32mLe Backup a bien été rajouté, generation d'un lien WHM pour aller vérifier jetbackup \e[0m"
	/scripts/whmlogin
fi





