লিনাক্স ক্রোনটব স্ক্রিপ্ট থেকে “মাইএসকিএলডাম্প | gzip ”ভুল ফাইলাইজ দেয়


0

আমার কাছে একটি বিন / বাশ স্ক্রিপ্ট রয়েছে যা আমার এসকিউএল ডেটাবেসকে মাইএসক্ল্ড্প্প্পস করে, যখন আমি এটি চালিত করি তখন ফাইলাইজ = 3 এমবি দিয়ে সবকিছু ঠিকঠাক হয় তবে যখন ক্রোনটব (সুডো হিসাবে) স্ক্রিপ্টটি চালায় তখন ফাইলসাইজটি 20 বি হয়

লিপি

#!/bin/bash
cd /home/blades/backup/databases
DATE=$(date +"%d-%m-%Y_%H:%M:%S")
mysqldump -u username -h localhost database --single-transaction | gzip -9 > database.sql_$DATE.gz

এবং sudo crontab -e

30 04 * * * /home/blades/backup/backup

আমি কি ভুল করছি?

উত্তর:


1

যোগ করে বলে আপনার ত্রুটিটি লগ করতে হবে

2>/tmp/mysqldump.log 

ত্রুটিটি কি তা বুঝতে।

সম্ভবত আপনার ক্রোন পরিবেশের PATHসঠিক সেট আপ নেই। সুতরাং আপনি প্রথমে যা করতে পারেন তা হ'ল আপনার mysqldumpএবং gzipকমান্ডগুলিতে পুরো পথ যুক্ত করা , যা সম্ভবত আপনার সমস্যার সমাধান করবে।

যদি তা না হয় তবে কেবল ত্রুটি লগ পরীক্ষা করুন।


আমি কীভাবে 2> /tmp/mysqldump.log ব্যবহার করতে জানি না
ব্লেড

ভাল এটি লগ ফাইলের আউটপুট মাইএসকিলডাম্প: পাওয়া গেছে ত্রুটি: 1045: সংযোগের চেষ্টা করার সময় ব্যবহারকারীর 'xxxxxxxxxx' @ 'লোকালহোস্ট' (পাসওয়ার্ড: কোনও নয়) এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে
ব্লেড

সুতরাং এটি আপনার প্রমাণীকরণের তথ্য খুঁজে পাচ্ছে না। আপনি একটি কনফিগার ফাইল ব্যবহার করছেন? যদি তাই হয় তবে আপনাকে স্পষ্টভাবে এটি নির্দিষ্ট করতে হবে কারণ ক্রোনে পরিবেশটি আপনার লগইন শেল পরিবেশ নয়। অথবা আপনি আপনার ক্রোন স্ক্রিপ্টে ব্যবহারকারীর নাম এবং পাসওয়ার্ড যুক্ত করতে পারেন যা কম সুরক্ষিত।
johnshen64

আমার কাছে একটি কনফিগার ফাইল আছে / home/username/.my.cnf যা প্রমাণীকরণ সমর্থন করে। লগফাইলে এখন "মাইএসকিल्डম্প: অজানা ভেরিয়েবল 'ডিফল্ট-অতিরিক্ত-ফাইল ="
ব্লেডগুলি

0

মাইএসকিএলডাম্পের সম্পূর্ণ পথটি যুক্ত করার চেষ্টা করুন। /usr/bin/mysqldump -u username -h localhost database --single-transaction | gzip -9 > database.sql_$DATE.gz

(/ usr / বিন / mysqldump একটি উদাহরণ। এটি আপনার সিস্টেমে অন্য কোনও জায়গায় হতে পারে)। ক্রোনট্যাব থেকে চালিত স্ক্রিপ্টগুলি অন্য একটি "জায়গায়" চালিত হয় এবং এর মাধ্যমে আপনার বর্তমান ব্যবহারকারী $ PATH সংজ্ঞা হয় না। আপনার বর্তমান ব্যবহারকারীর সম্ভবত এটির $ PATH পরিবেশগত পরিবর্তনশীলটিতে সংজ্ঞা দেওয়া আছে, এ কারণেই আপনি যখন স্ক্রিপ্টটি ম্যানুয়ালি চালান কোনও সমস্যা ছাড়াই কাজ করে। একই প্রযোজ্য gzip


আমি কোনও সাফল্য ছাড়াই করিনি
ব্লেড

0

ঠিক আছে, আমি এটি সমাধান করতে পেরেছি, .my.cnf ফাইলে আমাকে মাইএসকিএলডাম্প এবং ক্লায়েন্ট নির্দিষ্ট করতে হয়েছিল , কেবল মাইএসকিএলডাম্পই নয় তাই ফাইলটি .my.cnf হয় (তার পরে chmod থেকে 400)

[client]
user=aaaaaaaaaaaaa
password=xxxxxxxxxxxx

[mysqldump]
user=aaaaaaaaaaaaa
password=xxxxxxxxxxxx

অন্য বিষয়টি হ'ল বিকল্পগুলি প্রথমে লোকালহোস্ট ইত্যাদি হওয়া উচিত তাই স্ক্রিপ্টটি এরকম হয়

/usr/bin/mysqldump --defaults-file=/home/username/.my.cnf --single-transaction -h localhost database_name | gzip -9 > database_name.sql_$DATE.gz

যাইহোক, সাহায্য করার জন্য এটি থেক্স

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.