DDNS Cloudflare API


Because i move my dns service from Namecheap to Cloudflare, i need to update my dynamic isp ip one of my subdomain in cloudflare with ddns cloudflare api and here some script that i use :

THE SCRIPT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh
[ ! -f /var/tmp/current_ip.txt ] && touch /var/tmp/currentip.txt

zone_name="root_domain"
EMAIL="cloudflare_email"
AUTHKEY="cloudflare_api"

DNS1="first_domain"
DNS2="second_domain"

NEWIP=$(curl -s http://ipv4.icanhazip.com)
DOMAINIP1=$(dig "$DNS1" +short | awk '{ print ; exit }')
DOMAINIP2=$(dig "$DNS2" +short | awk '{ print ; exit }')
zone_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | grep -Po '(?<="id":")[^"]*' | head -1 )

dns1_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$DNS1" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | | grep -Po '(?<="id":")[^"]*' | head -1)
dns2_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$DNS2" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | | grep -Po '(?<="id":")[^"]*' | head -1) if [ "$NEWIP" = "$DOMAINIP1" ] then echo "IP address unchanged" else curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$dns1_identifier" \ -H "X-Auth-Email: $EMAIL" \ -H "X-Auth-Key: $AUTHKEY" \ -H "Content-Type: application/json" \ --data "{"id":"$zone_identifier","type":"A","name":"$DNS1","content":"$NEWIP","proxied":true}" echo "$DNS1 IP address changed to $NEWIP from $DOMAINIP1" > /var/tmp/currentip.txt
fi

if [ "$NEWIP" = "$DOMAINIP2" ]
then
echo "IP address unchanged"
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$dns2_identifier" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $AUTHKEY" \
-H "Content-Type: application/json" \
--data "{"id":"$zone_identifier","type":"A","name":"$DNS2","content":"$NEWIP","proxied":true}"
echo "$DNS2 IP address changed to $NEWIP from $DOMAINIP2" >> /var/tmp/currentip.txt
fi

DON’T FORGET

don’t forget to set chmod +x to the file
add it to crontab

ASP.NET Core RC2 To RTM

So today i try to migrate from asp.net core RC2 to RTM, here’s the step i do when migrating

1. Uninstall all Microsoft.NET Core RC2 Runtime, SDK, and Tooling Preview 1
2. Install the new Microsoft.NET Core RTM, SDK, and Tooling Preview 2
3. Change all version in project.json from 1.0.0-rc2-final to 1.0.0
4. Change all version in project.json from 1.0.0-preview1-final to 1.0.0-preview2-final
5. Find global.json in your solution root, and change it from 1.0.0-preview1-002702 to 1.0.0-preview2-003121
6. Done rebuilt the solution!
7. Good Luck!!

Identity Jump on MS SQL Server 2012 and up

I got problem when MS SQL Service got sudden shutdown or restart the identity is jump by 1000.
To solve this problem use “-T272”

1. Open “SQL Server Configuration Manager”
2. Click “SQL Server Services” on the left pane
3. Right-click on your SQL Server instance name on the right pane
4. Click “Properties”
5. Click “Startup Parameters”
6. On the “specify a startup parameter” textbox type “-T272”
7. Click “Add”
8. Confirm the changes

I hope this can solve the problem.

Install And Change Apache2 And MySQL Default Directory In Ubuntu 12.04

get the Apache2, PHP5 and MySQL

1
2
3
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install mysql-server

to move your default directory for your site in apache2 make directory where your new site will be stored, for this example i’ll use /home/www/

1
mdkir /home/www/

then set the permission

1
chown -R www-data:www-data /home/www

edit default file in /etc/apache2/sites-available/ to be like this, change the DocumentRoot and Directory to the new directory that you want, in this case im using /home/www

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

restart the apache2

1
sudo service apache2 restart

done!

to change MySQL default data directory to new one, here’s the step

first stop the MySQL Service

1
sudo service mysql stop

make new directory to store your new data, in this example i’ll use /home/mysql

1
sudo mkdir /home/mysql

copy your mysql data from the old one to the new one

1
sudo cp -R /var/lib/mysql/* /home/mysql/

set the permission

1
sudo chown -R mysql:mysql /home/mysql

edit my.cnf file in /etc/mysql , just edit the data location from

1
datadir = /var/lib/mysql

to

1
datadir = /home/mysql

then edit /etc/apparmor.d/usr.sbin.mysqld

1
sudo gedit /etc/apparmor.d/usr.sbin.mysqld

change

1
2
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

to

1
2
/home/mysql/ r,
/home/mysql/** rwk,

Reload apparmor

1
sudo /etc/init.d/apparmor reload

Then start mysql

1
sudo service mysql start

Good Luck!!